llvm-project/llvm/lib/IR
Graham Hunter b302561b76 [SVE][IR] Scalable Vector size queries and IR instruction support
* Adds a TypeSize struct to represent the known minimum size of a type
  along with a flag to indicate that the runtime size is a integer multiple
  of that size
* Converts existing size query functions from Type.h and DataLayout.h to
  return a TypeSize result
* Adds convenience methods (including a transparent conversion operator
  to uint64_t) so that most existing code 'just works' as if the return
  values were still scalars.
* Uses the new size queries along with ElementCount to ensure that all
  supported instructions used with scalable vectors can be constructed
  in IR.

Reviewers: hfinkel, lattner, rkruppe, greened, rovka, rengolin, sdesmalen

Reviewed By: rovka, sdesmalen

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

llvm-svn: 374042
2019-10-08 12:53:54 +00:00
..
AbstractCallSite.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AsmWriter.cpp [X86] Add new calling convention that guarantees tail call optimization 2019-10-07 22:28:58 +00:00
AttributeImpl.h Fix analyzer TypeAttributeImpl::anchor() override. 2019-09-25 14:23:25 +00:00
Attributes.cpp [LLVM][Alignment] Introduce Alignment In Attributes 2019-08-06 09:16:33 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp Regex: Make "match" and "sub" const member functions 2019-09-24 14:42:36 +00:00
BasicBlock.cpp [FastISel] Fix insertion of unconditional branches during FastISel 2019-09-20 13:22:59 +00:00
CMakeLists.txt Link libpthread into LLVMCore.so 2019-08-15 18:06:30 +00:00
Comdat.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ConstantFold.cpp ConstantFold - ConstantFoldSelectInstruction - assume constant vector elements are constant. NFCI. 2019-10-01 10:22:01 +00:00
ConstantFold.h Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantRange.cpp [ConstantRange] [NFC] replace addWithNoSignedWrap with addWithNoWrap. 2019-10-08 03:00:31 +00:00
Constants.cpp [Constant] Add 'isElementWiseEqual()' method 2019-08-24 06:49:51 +00:00
ConstantsContext.h Fix cppcheck variable shadow warning. NFCI. 2019-09-25 13:45:36 +00:00
Core.cpp [Alignment][NFC] Remove StoreInst::setAlignment(unsigned) 2019-10-03 13:17:21 +00:00
DIBuilder.cpp Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
DataLayout.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
DebugInfo.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
DebugInfoMetadata.cpp DIExpression::createFragmentExpression - silence static analyzer DIExpression* null dereference warning with an assertion. NFCI. 2019-10-01 11:25:38 +00:00
DebugLoc.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DiagnosticHandler.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DiagnosticInfo.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
DiagnosticPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Dominators.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Function.cpp [IntrinsicEmitter] Add overloaded type VecOfBitcastsToInt for SVE intrinsics 2019-10-02 09:25:02 +00:00
GVMaterializer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Globals.cpp Use parenthses to silence warning. 2019-08-06 22:47:47 +00:00
IRBuilder.cpp Improve reduction intrinsics by overloading result value. 2019-06-13 09:37:38 +00:00
IRPrintingPasses.cpp [IRPrinting] Improve module pass printer to work better with -filter-print-funcs 2019-09-04 08:08:58 +00:00
InlineAsm.cpp [SVE][Inline-Asm] Add constraints for SVE predicate registers 2019-09-16 09:45:27 +00:00
Instruction.cpp Add a transform pass to make the executable semantics of poison explicit in the IR 2019-07-09 18:49:29 +00:00
Instructions.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
IntrinsicInst.cpp [FPEnv] Add constrained intrinsics for lrint and lround 2019-10-07 13:20:00 +00:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp [IR] Consolidate fixed metadata kind definitions (NFC) 2019-07-29 20:24:20 +00:00
LLVMContextImpl.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
LLVMContextImpl.h Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
LegacyPassManager.cpp [LegacyPassManager] Attempt to fix BasicBlockManager 2019-09-30 17:23:49 +00:00
MDBuilder.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
MetadataImpl.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Module.cpp IR. Change strip* family of functions to not look through aliases. 2019-08-22 19:56:14 +00:00
ModuleSummaryIndex.cpp [ThinLTO] Attempt to recommit r365188 after alignment fix 2019-07-05 15:25:05 +00:00
Operator.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OptBisect.cpp Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
PassInstrumentation.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassManager.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassRegistry.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp [PGO] Context sensitive PGO (part 2) 2019-02-28 19:55:07 +00:00
RemarkStreamer.cpp [Tools] Mark output of tools as text if it is text 2019-10-08 08:21:20 +00:00
SafepointIRVerifier.cpp SafepointIRVerifier - silence static analyzer dyn_cast<Instruction> null dereference warnings. NFCI. 2019-09-24 13:57:44 +00:00
Statepoint.cpp [CallSite removal] Migrate the statepoint GC infrastructure to use the 2019-02-11 07:42:30 +00:00
SymbolTableListTraitsImpl.h [ADT] Notify ilist traits about in-list transfers 2019-01-23 22:59:52 +00:00
Type.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
TypeFinder.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Use.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
User.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Value.cpp Fix Calling Convention through aliases 2019-10-07 17:28:03 +00:00
ValueSymbolTable.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Verifier.cpp [FPEnv] Add constrained intrinsics for lrint and lround 2019-10-07 13:20:00 +00:00