llvm-project/llvm/lib/IR
David Sherwood 69cccb3189 [SVE] Fix isLoadInvariantInLoop for scalable vectors
I've amended the isLoadInvariantInLoop function to bail out for
scalable vectors for now since the invariant.start intrinsic is only
ever generated by the clang frontend for thread locals or struct
and class constructors, neither of which support sizeless types.
In addition, the intrinsic itself does not currently support the
concept of a scaled size, which makes it impossible to compare
the sizes of different scalable objects, e.g. <vscale x 32 x i8>
and <vscale x 16 x i8>.

Added new tests here:

  Transforms/LICM/AArch64/sve-load-hoist.ll
  Transforms/LICM/hoisting.ll

Differential Revision: https://reviews.llvm.org/D87227
2020-09-15 08:30:19 +01:00
..
AbstractCallSite.cpp Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
AsmWriter.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
AttributeImpl.h [Attributes] Add a method to check if an Attribute has AttrKind None. Use instead of hasAttribute(Attribute::None) 2020-08-28 13:23:45 -07:00
Attributes.cpp [IR] Inline AttrBuilder::addAttribute. It just sets 1 bit. NFC. 2020-08-29 19:13:49 +02:00
AutoUpgrade.cpp [X86] Replace UpgradeX86AddSubSatIntrinsics with UpgradeX86BinaryIntrinsics generic helper. NFCI. 2020-09-07 15:57:18 +01:00
BasicBlock.cpp Revert "[IR] Clean up dead instructions after simplifying a conditional branch" 2020-06-16 10:32:15 +01:00
CMakeLists.txt Revert "[NewPM][Lint] Port -lint to NewPM" 2020-09-02 21:34:29 -07:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] Make areGlobalsPotentiallyEqual less aggressive. 2020-09-11 17:23:08 -07:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange][CVP] Make use of abs poison flag 2020-07-30 23:06:10 +02:00
Constants.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
ConstantsContext.h [IR] Add classof methods to ConstantExpr subclasses. 2020-07-01 11:56:12 -07:00
Core.cpp Revert "[NewPM][Lint] Port -lint to NewPM" 2020-09-02 21:34:29 -07:00
DIBuilder.cpp [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
DataLayout.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
DebugInfo.cpp Revert "[Instruction] Add updateLocationAfterHoist helper" 2020-08-11 14:54:09 -07:00
DebugInfoMetadata.cpp Strength-reduce SmallVectors to arrays. NFCI. 2020-08-28 21:14:20 +02:00
DebugLoc.cpp Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value. 2020-07-01 16:38:51 +01:00
DiagnosticHandler.cpp
DiagnosticInfo.cpp [llvm][LV] Replace `unsigned VF` with `ElementCount VF` [NFCI] 2020-08-24 13:54:03 +00:00
DiagnosticPrinter.cpp
Dominators.cpp [DomTree] Extend update API to allow a post CFG view. 2020-08-21 17:23:08 -07:00
FPEnv.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
Function.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
GVMaterializer.cpp
Globals.cpp [X86][ELF] Prefer lowering MC_GlobalAddress operands to .Lfoo$local for STV_DEFAULT only 2020-08-14 00:09:15 +01:00
IRBuilder.cpp Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
IRPrintingPasses.cpp IRPrintingPasses.h - simplify unnecessary header with forward declarations. NFC. 2020-07-27 14:51:28 +01:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try) 2020-08-31 16:01:19 -04:00
Instructions.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
IntrinsicInst.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
LLVMBuild.txt
LLVMContext.cpp Introduce a "gc-live" bundle for the gc arguments of a statepoint 2020-06-03 15:00:24 -07:00
LLVMContextImpl.cpp Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4% 2020-08-07 11:36:30 -07:00
LLVMContextImpl.h [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
LLVMRemarkStreamer.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
LegacyPassManager.cpp Revert "Add new hidden option -print-changed which only reports changes to IR" 2020-09-03 18:41:20 +00:00
MDBuilder.cpp [MDBuilder] Don't use stable sort for sorting integers. 2020-03-28 21:19:46 +01:00
Mangler.cpp IR: Rename Argument::hasPassPointeeByValueAttr to prepare for byref 2020-07-16 13:50:49 -04:00
Metadata.cpp [IR] Avoid linear scan in MDNode::intersect() (NFC) 2020-05-28 19:38:46 +02:00
MetadataImpl.h
Module.cpp [PGO] Improve the working set size heuristics under the partial sample PGO. 2020-06-01 10:29:23 -07:00
ModuleSummaryIndex.cpp [ThinLTO] Compile time improvement to propagateAttributes 2020-07-31 10:54:02 -07:00
Operator.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
OptBisect.cpp
Pass.cpp [Pass] Ensure we don't include PassSupport.h or PassAnalysisSupport.h directly 2020-04-26 12:58:20 +01:00
PassInstrumentation.cpp [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations 2020-07-30 10:07:57 -07:00
PassManager.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
PassRegistry.cpp [Pass] Ensure we don't include PassSupport.h or PassAnalysisSupport.h directly 2020-04-26 12:58:20 +01:00
PassTimingInfo.cpp [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks 2020-08-21 16:10:42 +07:00
ProfileSummary.cpp ProfileSummary.cpp - fix implicit Format.h dependency. NFC. 2020-06-23 09:43:40 +01:00
SafepointIRVerifier.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
Statepoint.cpp [Statepoint] Start the process of removing old interfaces 2020-06-03 20:00:52 -07:00
StructuralHash.cpp (Expensive) Check for Loop, SCC and Region pass return status 2020-08-28 07:56:35 +02:00
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp [IR] Simplify Use::swap. NFCI. 2020-07-21 12:15:12 +01:00
User.cpp [NFC] Edit the comment in User::replaceUsesOfWith 2020-07-29 10:02:04 +08:00
Value.cpp [SROA] Improve handleling of assumes bundles by SROA 2020-08-28 21:55:45 +02:00
ValueSymbolTable.cpp NFC: Clean up the implementation of StringPool a bit, and remove dependence on some "implicitly MallocAllocator" based methods on StringMapEntry. This allows reducing the #includes in StringMapEntry.h. 2020-04-12 16:37:17 -07:00
Verifier.cpp [SVE] Fix isLoadInvariantInLoop for scalable vectors 2020-09-15 08:30:19 +01:00