llvm-6502/include/llvm/IR
Justin Bogner 70b0751080 InstrProf: An intrinsic and lowering for instrumentation based profiling
Introduce the ``llvm.instrprof_increment`` intrinsic and the
``-instrprof`` pass. These provide the infrastructure for writing
counters for profiling, as in clang's ``-fprofile-instr-generate``.

The implementation of the instrprof pass is ported directly out of the
CodeGenPGO classes in clang, and with the followup in clang that rips
that code out to use these new intrinsics this ends up being NFC.

Doing the instrumentation this way opens some doors in terms of
improving the counter performance. For example, this will make it
simple to experiment with alternate lowering strategies, and allows us
to try handling profiling specially in some optimizations if we want
to.

Finally, this drastically simplifies the frontend and puts all of the
lowering logic in one place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223672 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-08 18:02:35 +00:00
..
Argument.h Provide convenient access to the zext/sext attributes of function arguments. NFC. 2014-08-05 05:43:41 +00:00
AssemblyAnnotationWriter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Attributes.h Revert accidentally committed r217107 2014-09-03 23:38:05 +00:00
AutoUpgrade.h Rename loop unrolling and loop vectorizer metadata to have a common prefix. 2014-06-25 15:41:00 +00:00
BasicBlock.h Move helper for getting a terminating musttail call to BasicBlock 2014-08-12 00:05:15 +00:00
CallingConv.h X86: Implement the vectorcall calling convention 2014-10-28 01:29:26 +00:00
CallSite.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
CFG.h Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
CMakeLists.txt
Comdat.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
Constant.h InstCombine: sub nsw %x, C -> add nsw %x, -C if C isn't INT_MIN 2014-08-22 16:41:23 +00:00
ConstantFolder.h Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co. 2014-07-14 17:24:35 +00:00
ConstantRange.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Constants.h Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
DataLayout.h AArch64: treat [N x Ty] as a block during procedure calls. 2014-11-27 21:02:42 +00:00
DebugInfo.h Debug Info: revert r222195, r222210 and r222239. 2014-11-21 19:55:23 +00:00
DebugLoc.h Add missing const specifier to a const method. 2014-06-05 14:32:15 +00:00
DerivedTypes.h Add params() to FunctionType. NFC. 2014-11-21 19:03:35 +00:00
DiagnosticInfo.h Update the error handling of lib/Linker. 2014-10-25 04:06:10 +00:00
DiagnosticPrinter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
DIBuilder.h DIBuilder: Use Constant instead of Value 2014-11-15 00:23:49 +00:00
Dominators.h Move operator[] to DomTreeNodeBase 2014-07-02 06:50:48 +00:00
Function.h Prologue support 2014-12-03 02:08:38 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
GlobalObject.h Fix broken C++ mode comment 2014-11-05 01:36:22 +00:00
GlobalValue.h Modernize the error handling of the Materialize function. 2014-10-24 22:50:48 +00:00
GlobalVariable.h [pr19844] Add thread local mode to aliases. 2014-05-28 18:15:43 +00:00
GVMaterializer.h Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
InlineAsm.h Reapply r215966, r215965, r215964, r215963, r215960, r215959, r215958, and r215957 2014-08-19 16:39:58 +00:00
InstIterator.h
InstrTypes.h Revert r220349 to re-instate r220277 with a fix for PR21330 -- quite 2014-11-25 08:20:27 +00:00
Instruction.def
Instruction.h Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
Instructions.h Update comment on AtomicRMWInst::Nand 2014-09-22 06:47:10 +00:00
InstVisitor.h
IntrinsicInst.h InstrProf: An intrinsic and lowering for instrumentation based profiling 2014-12-08 18:02:35 +00:00
Intrinsics.h Masked Load / Store Intrinsics - the CodeGen part. 2014-12-04 09:40:44 +00:00
Intrinsics.td InstrProf: An intrinsic and lowering for instrumentation based profiling 2014-12-08 18:02:35 +00:00
IntrinsicsAArch64.td Port memory barriers intrinsics to AArch64 2014-07-17 10:50:20 +00:00
IntrinsicsARM.td ARM: add @llvm.arm.space intrinsic for testing ConstantIslands. 2014-11-13 17:58:48 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td [NVPTX] Make the alignment an explicit argument to ldu/ldg 2014-08-29 15:30:20 +00:00
IntrinsicsPowerPC.td [PowerPC] Add VSX builtins for vec_div 2014-11-14 12:10:40 +00:00
IntrinsicsR600.td R600/SI: Add missing parameter to div_fmas intrinsic 2014-10-21 22:20:55 +00:00
IntrinsicsX86.td [AVX512] Add 512b integer shift by variable intrinsics and patterns. 2014-11-25 20:41:51 +00:00
IntrinsicsXCore.td
IRBuilder.h Masked Load / Store Intrinsics - the CodeGen part. 2014-12-04 09:40:44 +00:00
IRPrintingPasses.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LeakDetector.h
LegacyPassManager.h
LegacyPassManagers.h FunctionPassManager isn't used by the JIT anymore, it is used in 2014-09-10 10:48:06 +00:00
LegacyPassNameParser.h Do not register and de-register PassRegistrationListeners during 2014-06-12 00:16:36 +00:00
LLVMContext.h Introduce enum values for previously defined metadata types. (NFC) 2014-10-21 00:13:20 +00:00
Mangler.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MDBuilder.h Simplify and improve scoped-noalias metadata semantics 2014-07-25 15:50:02 +00:00
Metadata.h IR: Stop relying on GetStringMapEntryFromValue() 2014-12-05 01:41:34 +00:00
Module.h Make the DenseMap bucket type configurable and use a smaller bucket for DenseSet. 2014-12-06 19:22:44 +00:00
NoFolder.h
OperandTraits.h
Operator.h InstCombine: Don't assume that m_ZExt matches an Instruction 2014-11-01 23:46:05 +00:00
PassManager.h Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
PatternMatch.h Unbreak the build. 2014-10-25 18:20:17 +00:00
PredIteratorCache.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Statepoint.h GCRelocateOperands: Try to appease msc17. 2014-12-03 02:40:24 +00:00
SymbolTableListTraits.h
Type.h Add and use Type::subtypes. NFC. 2014-11-24 20:44:36 +00:00
TypeBuilder.h
TypeFinder.h
Use.h
UseListOrder.h verify-uselistorder: Force -preserve-bc-use-list-order 2014-08-19 21:08:27 +00:00
User.h IR: Move NumOperands from User to Value, NFC 2014-10-15 20:39:05 +00:00
Value.h [InstCombine] Re-commit of r218721 (Optimize icmp-select-icmp sequence) 2014-11-21 23:36:44 +00:00
ValueHandle.h IR: Cleanup comments for Value, User, and MDNode 2014-10-15 20:28:31 +00:00
ValueMap.h Support: add llvm::unique_lock 2014-08-23 23:07:14 +00:00
ValueSymbolTable.h
Verifier.h