1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/lib/IR
Johannes Doerfert 6230d2a2a4 [Clang][Attr] Introduce the assume function attribute
The `assume` attribute is a way to provide additional, arbitrary
information to the optimizer. For now, assumptions are restricted to
strings which will be accumulated for a function and emitted as comma
separated string function attribute. The key of the LLVM-IR function
attribute is `llvm.assume`. Similar to `llvm.assume` and
`__builtin_assume`, the `assume` attribute provides a user defined
assumption to the compiler.

A follow up patch will introduce an LLVM-core API to query the
assumptions attached to a function. We also expect to add more options,
e.g., expression arguments, to the `assume` attribute later on.

The `omp [begin] asssumes` pragma will leverage this attribute and
expose the functionality in the absence of OpenMP.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D91979
2020-12-15 16:51:34 -06:00
..
AbstractCallSite.cpp Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
AsmWriter.cpp Adding PoisonValue for representing poison value explicitly in IR 2020-11-25 17:33:51 -07:00
Assumptions.cpp [Clang][Attr] Introduce the assume function attribute 2020-12-15 16:51:34 -06:00
AttributeImpl.h Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
Attributes.cpp [clang][IR] Add support for leaf attribute 2020-12-14 14:48:17 -08:00
AutoUpgrade.cpp OpaquePtr: Require byval on x86_intrcc parameter 0 2020-12-14 16:34:37 -05:00
BasicBlock.cpp [IR] improve code comment/logic in removePredecessor(); NFC 2020-11-30 10:51:30 -05:00
CMakeLists.txt [Clang][Attr] Introduce the assume function attribute 2020-12-15 16:51:34 -06:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] Don't fold and/or i1 poison to poison (NFC) 2020-11-30 22:58:31 +09:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange] Introduce getMinSignedBits() method 2020-09-22 21:37:30 +03:00
Constants.cpp [llvm] Fix for failing test from fdbd84c6c819d4462546961f6086c1524d5d5ae8 2020-12-01 15:47:55 -08:00
ConstantsContext.h [IR] Add classof methods to ConstantExpr subclasses. 2020-07-01 11:56:12 -07:00
Core.cpp Creating a named struct requires only a Context and a name, but looking up a struct by name requires a Module. The method on Module merely accesses the LLVMContextImpl and no data from the module itself, so this patch moves getTypeByName to a static method on StructType that takes a Context and a name. 2020-11-30 11:34:12 -08:00
DataLayout.cpp [DL] Inline getAlignmentInfo() implementation (NFC) 2020-11-30 20:56:15 +01:00
DebugInfo.cpp Migrate deprecated DebugLoc::get to DILocation::get 2020-12-11 12:45:22 -08:00
DebugInfoMetadata.cpp [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
DebugLoc.cpp Migrate deprecated DebugLoc::get to DILocation::get 2020-12-11 12:45:22 -08:00
DiagnosticHandler.cpp
DiagnosticInfo.cpp [Support] Introduce a new InstructionCost class 2020-12-11 08:12:54 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp [DebugInfo] Expose Fortran array debug info attributes through DIBuilder. 2020-10-28 13:13:35 -07:00
Dominators.cpp [DomTree] Make assert more precise 2020-10-22 22:40:06 +02:00
FPEnv.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
Function.cpp Small improvements to Intrinsic::getName 2020-12-02 16:49:12 -08:00
Globals.cpp Add a default address space for globals to DataLayout 2020-11-20 15:46:52 +00:00
GVMaterializer.cpp
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
Instructions.cpp [CallBase] Add hasRetAttr version that takes StringRef. 2020-12-10 17:00:16 +00:00
IntrinsicInst.cpp [VP] Build VP SDNodes 2020-12-09 11:36:51 +01:00
IRBuilder.cpp [LoopVectorizer][SVE] Vectorize a simple loop with with a scalable VF. 2020-12-09 11:25:21 +00:00
IRPrintingPasses.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
LegacyPassManager.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
LLVMContext.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
LLVMContextImpl.cpp Fix use-of-uninitialized-value in rG75f50e15bf8f 2020-11-26 01:39:22 -07:00
LLVMContextImpl.h [Remarks][1/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:49 -08:00
LLVMRemarkStreamer.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
Mangler.cpp fix symbol printing on windows 2020-10-15 17:14:55 -04:00
MDBuilder.cpp [CSSPGO] Pseudo probe encoding and emission. 2020-12-10 17:29:28 -08:00
Metadata.cpp [IR] Use llvm::is_contained (NFC) 2020-12-08 19:06:37 -08:00
MetadataImpl.h
Module.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08: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 Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [LegacyPM] Remove unused undocumented parameter. NFC. 2020-11-27 10:41:38 +00:00
PassInstrumentation.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
PassManager.cpp [NewPM] Make pass adaptors less templatey 2020-12-04 08:30:50 -08: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 [Time-report] Add a flag -ftime-report={per-pass,per-pass-run} to control the pass timing aggregation 2020-12-08 10:13:19 -08:00
PrintPasses.cpp [IR] Use llvm::is_contained (NFC) 2020-12-08 19:06:37 -08:00
ProfileSummary.cpp ProfileSummary.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. 2020-09-21 16:54:26 +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 [IR] Remove isPowerOf2ByteWidth 2020-12-14 23:00:17 -08: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 [IR] Merge metadata manipulation code into Value 2020-10-23 11:08:26 +07: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 [clang][IR] Add support for leaf attribute 2020-12-14 14:48:17 -08:00