llvm-project/llvm/lib/CodeGen/GlobalISel
Joerg Sonnenberger 9681ea9560 Reapply r374743 with a fix for the ocaml binding
Add a pass to lower is.constant and objectsize intrinsics

This pass lowers is.constant and objectsize intrinsics not simplified by
earlier constant folding, i.e. if the object given is not constant or if
not using the optimized pass chain. The result is recursively simplified
and constant conditionals are pruned, so that dead blocks are removed
even for -O0. This allows inline asm blocks with operand constraints to
work all the time.

The new pass replaces the existing lowering in the codegen-prepare pass
and fallbacks in SDAG/GlobalISEL and FastISel. The latter now assert
on the intrinsics.

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

llvm-svn: 374784
2019-10-14 16:15:14 +00:00
..
CMakeLists.txt [GISel]: Add GISelKnownBits analysis 2019-08-06 17:18:29 +00:00
CSEInfo.cpp [GlobalISel] CSEMIRBuilder: Add support for G_GEP 2019-08-15 23:45:45 +00:00
CSEMIRBuilder.cpp [globalisel] Add G_SEXT_INREG 2019-08-09 21:11:20 +00:00
CallLowering.cpp [GISel][CallLowering] Enable vector support in argument lowering 2019-10-11 20:22:57 +00:00
Combiner.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CombinerHelper.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
GISelChangeObserver.cpp [AArch64][GlobalISel] Enable copy elision in the pre-legalizer combine and fix a crash. 2019-04-13 00:33:25 +00:00
GISelKnownBits.cpp [Alignment][NFC] Use llv::Align in GISelKnownBits 2019-10-10 15:38:22 +00:00
GlobalISel.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IRTranslator.cpp Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
InstructionSelect.cpp [GlobalISel] Defer setting HasCalls on MachineFrameInfo to selection time. 2019-09-20 23:52:07 +00:00
InstructionSelector.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
LLVMBuild.txt Make GlobalISel depend on SelectionDAG after D63169 2019-06-22 01:30:17 +00:00
LegalityPredicates.cpp GlobalISel: Add alignment to LegalityQuery MMOs 2019-02-14 22:41:09 +00:00
LegalizeMutations.cpp GlobalISel: Try to make legalize rules more useful for vectors 2019-02-07 17:25:51 +00:00
Legalizer.cpp [GlobalISel] Legalizer: Retry combining illegal artifacts as long as there new artifacts 2019-08-23 20:30:35 +00:00
LegalizerHelper.cpp GlobalISel: Implement fewerElementsVector for G_BUILD_VECTOR 2019-10-09 22:44:43 +00:00
LegalizerInfo.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
Localizer.cpp Localizer - fix "variable used but never read" analyzer warning. NFCI. 2019-09-23 11:38:10 +00:00
MachineIRBuilder.cpp [MachineIRBuilder] Fix an assertion failure with buildMerge 2019-10-11 20:22:47 +00:00
RegBankSelect.cpp GlobalISel: Add target pre-isel instructions 2019-10-07 18:43:29 +00:00
RegisterBank.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterBankInfo.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
Utils.cpp [GISel] Simplifying return from else in function. NFC 2019-10-10 21:51:30 +00:00