llvm-project/clang/docs
Sanjay Patel ad82390d3f [CodeGen] add rotate builtins that map to LLVM funnel shift
This is a partial retry of rL340137 (reverted at rL340138 because of gcc host compiler crashing)
with 1 change:
Remove the changes to make microsoft builtins also use the LLVM intrinsics.
 
This exposes the LLVM funnel shift intrinsics as more familiar bit rotation functions in clang
(when both halves of a funnel shift are the same value, it's a rotate).

We're free to name these as we want because we're not copying gcc, but if there's some other
existing art (eg, the microsoft ops) that we want to replicate, we can change the names.

The funnel shift intrinsics were added here:
https://reviews.llvm.org/D49242

With improved codegen in:
https://reviews.llvm.org/rL337966
https://reviews.llvm.org/rL339359

And basic IR optimization added in:
https://reviews.llvm.org/rL338218
https://reviews.llvm.org/rL340022

...so these are expected to produce asm output that's equal or better to the multi-instruction
alternatives using primitive C/IR ops.

In the motivating loop example from PR37387:
https://bugs.llvm.org/show_bug.cgi?id=37387#c7
...we get the expected 'rolq' x86 instructions if we substitute the rotate builtin into the source.

Differential Revision: https://reviews.llvm.org/D50924

llvm-svn: 340141
2018-08-19 16:50:30 +00:00
..
CommandGuide [diagtool] Add diagtool to install target. 2018-05-16 10:23:25 +00:00
analyzer [analyzer] Fix a typo in `RegionStore.txt`. 2018-08-08 13:37:28 +00:00
tools [clang-format ]Extend IncludeCategories regex documentation 2018-07-25 10:21:47 +00:00
AddressSanitizer.rst [Docs] Update supported oses for safestack, ubsan, asan, tsan and msan 2018-07-25 13:55:06 +00:00
AttributeReference.rst
AutomaticReferenceCounting.rst Fix and improve the ARC spec's wording about unmanaged objects. 2018-07-20 05:40:09 +00:00
Block-ABI-Apple.rst [CodeGen][ObjC] Make copying and disposing of a non-escaping block 2018-07-20 17:10:32 +00:00
Block-ABI-Apple.txt
BlockLanguageSpec.rst
CMakeLists.txt docs: Fix Sphinx detection with out-of-tree builds 2017-05-09 01:42:33 +00:00
ClangCheck.rst [clang docs] Minor fix in ClangCheck.rst 2016-11-14 17:31:24 +00:00
ClangCommandLineReference.rst [docs] Correct -fvisibility-inlines-hidden description 2018-07-19 22:45:41 +00:00
ClangFormat.rst [Docs] Update list of languages clang-format can format 2017-11-22 10:47:35 +00:00
ClangFormatStyleOptions.rst clang-format: try to make the doc for ConstructorInitializerAllOnOneLineOrOnePerLine more clear 2018-07-31 12:42:02 +00:00
ClangPlugins.rst Removing more :option: tags that we do not have corresponding .. option directives for; these are causing the sphinx bot to fail (http://lab.llvm.org:8011/builders/clang-sphinx-docs/builds/15195/steps/docs-clang-html/logs/stdio). 2016-07-14 14:07:37 +00:00
ClangTools.rst Fixed a link. 2015-11-04 19:42:17 +00:00
ControlFlowIntegrity.rst Implement CFI for indirect calls via a member function pointer. 2018-06-26 02:15:47 +00:00
ControlFlowIntegrityDesign.rst Fix broken links to the Itanium CXX ABI 2017-09-12 00:21:17 +00:00
CrossCompilation.rst [docs] Use x86_64 and i386 instead of x86 as arch for triples. 2016-12-05 22:52:20 +00:00
DataFlowSanitizer.rst
DataFlowSanitizerDesign.rst
DiagnosticsReference.rst Fix malformed table introduced by r330174 2018-04-17 05:48:36 +00:00
DriverArchitecture.png
DriverInternals.rst
ExternalClangExamples.rst Add LibreOffice Clang plugin to ExternalClangExamples.rst 2017-03-22 08:45:49 +00:00
FAQ.rst
HardwareAssistedAddressSanitizerDesign.rst [docs] Don't use the `asm` syntax highlighting (which our docs builder 2018-08-06 01:28:42 +00:00
HowToSetupToolingForLLVM.rst Allow the creation of human-friendly ASTDumper to arbitrary output stream 2018-04-06 13:01:12 +00:00
InternalsManual.rst Remove stale documentation from InternalsManual.rst 2018-07-24 16:11:30 +00:00
IntroductionToTheClangAST.rst
ItaniumMangleAbiTags.rst NFC fix documentation build by rL263015 2016-03-09 19:39:16 +00:00
JSONCompilationDatabase.rst [Tooling] Use FixedCompilationDatabase when `compile_flags.txt` is found. 2017-11-09 10:37:39 +00:00
LTOVisibility.rst Implement CFI for indirect calls via a member function pointer. 2018-06-26 02:15:47 +00:00
LanguageExtensions.rst [CodeGen] add rotate builtins that map to LLVM funnel shift 2018-08-19 16:50:30 +00:00
LeakSanitizer.rst [docs] Update LeakSanitizer documentation to reflect OS X support 2017-09-13 19:40:10 +00:00
LibASTMatchers.rst Typo fix in AST matcher documentation: s/aribtrary/arbitrary/ 2016-12-31 01:04:02 +00:00
LibASTMatchersReference.html [ASTMatchers] Let hasAnyArgument also support CXXUnresolvedConstructExpr 2018-08-12 23:30:05 +00:00
LibASTMatchersTutorial.rst Add missing newlines to cl::extrahelp uses 2018-05-08 19:46:29 +00:00
LibFormat.rst Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
LibTooling.rst Add missing newlines to cl::extrahelp uses 2018-05-08 19:46:29 +00:00
MSVCCompatibility.rst Update MSVC compat docs about debug info 2016-12-14 21:34:19 +00:00
Makefile.sphinx docs: Clarify that cfi-unrelated-cast is based on lifetime. 2016-02-01 18:55:50 +00:00
MemorySanitizer.rst [Docs] Update supported oses for safestack, ubsan, asan, tsan and msan 2018-07-25 13:55:06 +00:00
Modules.rst [Modules] Add more language features to be used with requires-declaration 2018-02-14 19:01:03 +00:00
ObjectiveCLiterals.rst
OpenMPSupport.rst [OPENMP] What's new for OpenMP in clang. 2018-07-26 17:53:45 +00:00
PCHInternals.rst Removing a few more :option: tags that we do not have corresponding .. option directives for; these are causing the sphinx bot to fail (http://lab.llvm.org:8011/builders/clang-sphinx-docs/builds/15197/steps/docs-clang-html/logs/stdio). 2016-07-14 15:32:11 +00:00
PCHLayout.graffle
PCHLayout.png
PTHInternals.rst
RAVFrontendAction.rst Port getLocStart -> getBeginLoc 2018-08-09 21:08:08 +00:00
README.txt
RefactoringEngine.rst Fix small nits in clang-refactor doc. 2017-10-10 09:00:56 +00:00
ReleaseNotes.rst Update docs version and clear release notes after 8.0.0 version bump 2018-08-01 14:01:27 +00:00
SafeStack.rst [Docs] Update supported oses for safestack, ubsan, asan, tsan and msan 2018-07-25 13:55:06 +00:00
SanitizerCoverage.rst docs: don't say that data flow tracing interface is unstable 2017-08-31 11:02:44 +00:00
SanitizerSpecialCaseList.rst Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
SanitizerStats.rst [docs] -fsanitize=cfi only allowed with -fvisibility= 2018-06-15 23:11:18 +00:00
ShadowCallStack.rst [ShadowCallStack] fix the docs 2018-05-01 00:15:56 +00:00
SourceBasedCodeCoverage.rst [docs] Coverage: Improve the wording a bit 2017-06-19 21:26:04 +00:00
ThinLTO.rst [ThinLTO] Correct documentation on default number of threads 2018-08-17 13:19:36 +00:00
ThreadSafetyAnalysis.rst Correct the attribute spelling for guarded_var and pt_guarded_var. 2017-05-08 12:39:17 +00:00
ThreadSanitizer.rst Fix tsan doc 2018-07-25 14:27:14 +00:00
Toolchain.rst [Docs] Fix typo in toolchain documentation 2018-01-12 02:57:02 +00:00
Tooling.rst
UndefinedBehaviorSanitizer.rst [docs] UndefinedBehaviorSanitizer.rst: {,un}signed-integer-overflow: tune docs 2018-07-30 21:11:32 +00:00
UsersManual.rst UserManual: Update with the latest clang-cl flags 2018-08-01 12:58:57 +00:00
conf.py Update docs version and clear release notes after 8.0.0 version bump 2018-08-01 14:01:27 +00:00
doxygen-mainpage.dox [docs] Add missing file 2016-03-03 10:44:10 +00:00
doxygen.cfg.in Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
index.rst Add the -fsanitize=shadow-call-stack flag 2018-04-03 22:33:53 +00:00
make.bat

README.txt

See llvm/docs/README.txt