1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/include/llvm/CodeGen
Sean Eveson 4b5d214bc5 [MC] Function stack size section.
Summary:
Original RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html

I wasn't sure who to put as reviewers, so please add/remove people as appropriate.

This change adds a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag. The section contains pairs of function symbol references (8 byte) and stack sizes (unsigned LEB128).

The contents of this section can be used to measure changes to stack sizes between different versions of the compiler or a source base. The advantage of having a section is that we can extract this information when examining binaries that we didn't build, and it allows users and tools easy access to that information just by referencing the binary.

There is a follow up change to add an option to clang.

Thanks.

Reviewers: hfinkel, MatzeB

Reviewed By: MatzeB

Subscribers: thegameg, asb, llvm-commits

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

llvm-svn: 319423
2017-11-30 12:01:16 +00:00
..
GlobalISel [globalisel][tablegen] Fix PR35375 by sign-extending the table value to match getConstantVRegVal() 2017-11-28 23:18:54 +00:00
MIRParser CodeGen: Refactor MIR parsing 2017-06-06 00:44:35 +00:00
PBQP Fix warnings discovered by rL317076. [-Wunused-private-field] 2017-11-01 13:47:55 +00:00
Analysis.h Move llvm::canBeOmittedFromSymbolTable() to Analysis. 2017-03-31 04:46:31 +00:00
AsmPrinter.h [MC] Function stack size section. 2017-11-30 12:01:16 +00:00
AtomicExpandUtils.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
BasicTTIImpl.h [PartiallyInlineLibCalls][x86] add TTI hook to allow sqrt inlining to depend on arg rather than result 2017-11-27 21:15:43 +00:00
CalcSpillWeights.h Add logic to greedy reg alloc to avoid bad eviction chains 2017-10-22 17:59:38 +00:00
CallingConvLower.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
CommandFlags.def [MC] Function stack size section. 2017-11-30 12:01:16 +00:00
CostTable.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
DAGCombine.h
DFAPacketizer.h [Packetizer] Add function to check for aliasing between instructions 2017-10-20 22:08:40 +00:00
DIE.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
DIEValue.def
DwarfStringPoolEntry.h
EdgeBundles.h
ExecutionDepsFix.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
ExpandReductions.h Add a late IR expansion pass for the experimental reduction intrinsics. 2017-05-10 09:42:49 +00:00
FastISel.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
FaultMaps.h Fix FaultMaps crash when the out streamer is reused 2017-10-17 11:44:34 +00:00
FunctionLoweringInfo.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
GCMetadata.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCMetadataPrinter.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCs.h
GCStrategy.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
IntrinsicLowering.h
ISDOpcodes.h [X86] Add separate intrinsics for scalar FMA4 instructions. 2017-11-25 18:32:43 +00:00
LatencyPriorityQueue.h Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
LazyMachineBlockFrequencyInfo.h
LexicalScopes.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
LiveIntervalAnalysis.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LiveIntervalUnion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LivePhysRegs.h [CodeGen] Print register names in lowercase in both MIR and debug output 2017-11-28 17:15:09 +00:00
LiveRangeEdit.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LiveRegMatrix.h
LiveRegUnits.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LiveStackAnalysis.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveVariables.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LowLevelType.h
MachineBasicBlock.h Irreducible loop metadata for more accurate block frequency under PGO. 2017-11-02 22:26:51 +00:00
MachineBlockFrequencyInfo.h Irreducible loop metadata for more accurate block frequency under PGO. 2017-11-02 22:26:51 +00:00
MachineBranchProbabilityInfo.h
MachineCombinerPattern.h [AArch64][MachineCombine] Fold FNMUL+FSUB -> FNMADD. 2017-05-11 20:07:24 +00:00
MachineConstantPool.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineDominanceFrontier.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineFrameInfo.h Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
MachineFunction.h Add llvm.codeview.annotation to implement MSVC __annotation 2017-09-05 20:14:58 +00:00
MachineFunctionPass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineInstr.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
MachineInstrBuilder.h [DebugInfo] Add missing DW_OP_deref when an NRVO pointer is spilled 2017-09-15 21:49:56 +00:00
MachineInstrBundle.h
MachineInstrBundleIterator.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineJumpTableInfo.h
MachineLoopInfo.h Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
MachineMemOperand.h Add an ID field to StackObjects 2017-07-20 21:03:45 +00:00
MachineModuleInfo.h [CodeGen] Emit necessary .note sections for -fsplit-stack 2017-09-27 19:34:00 +00:00
MachineModuleInfoImpls.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:33:29 +00:00
MachineOperand.h [CodeGen] Cleanup MachineOperand 2017-11-28 17:58:38 +00:00
MachineOptimizationRemarkEmitter.h MachineOptimizationRemarkEmitter.h: Appease g++-4.8.2. See also rL313715. 2017-10-11 23:03:05 +00:00
MachinePassRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MachinePostDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineRegionInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
MachineRegisterInfo.h [MachineCSE] Add new callback for is caller preserved or constant physregs 2017-11-20 16:55:07 +00:00
MachineScheduler.h Cleanup some problems with LLVM_ENABLE_DUMP in release builds, and 2017-09-27 21:19:56 +00:00
MachineSSAUpdater.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-11 23:00:48 +00:00
MachineTraceMetrics.h Recommit [MachineCombiner] Update instruction depths incrementally for large BBs. 2017-09-20 11:54:37 +00:00
MachineValueType.h Revert r313782 "[TableGen] Add a DenseMapInfo for MachineValueType." 2017-09-21 04:54:59 +00:00
MachORelocation.h
MacroFusion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MIRPrinter.h MIParser/MIRPrinter: Compute block successors if not explicitely specified 2017-05-05 21:09:30 +00:00
MIRYamlMapping.h MIR: Serialize CaleeSavedInfo Restored flag 2017-09-28 18:52:14 +00:00
ParallelCG.h
Passes.h Rename CountingFunctionInserter and use for both mcount and cygprofile calls, before and after inlining 2017-11-14 21:09:45 +00:00
PBQPRAConstraint.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
PreISelIntrinsicLowering.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
PseudoSourceValue.h Add AddresSpace to PseudoSourceValue. 2017-09-14 20:53:51 +00:00
RegAllocPBQP.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
RegAllocRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
RegisterClassInfo.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
RegisterPressure.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
RegisterScavenging.h RegScavenging: Add scavengeRegisterBackwards() 2017-06-17 02:08:18 +00:00
RegisterUsageInfo.h RegisterUsageInfo.h: Add missing header for complete type needed for DenseMap traits 2017-10-24 21:29:10 +00:00
ResourcePriorityQueue.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
RuntimeLibcalls.def Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
RuntimeLibcalls.h Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
ScheduleDAG.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
ScheduleDAGInstrs.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
ScheduleDAGMutation.h
ScheduleDFS.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ScoreboardHazardRecognizer.h
SelectionDAG.h Comment fix in SelectionDAG.h 2017-11-29 09:16:37 +00:00
SelectionDAGAddressAnalysis.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SelectionDAGISel.h [SelectionDAG] Add a isel matcher op to check the type of node results other than result 0. 2017-11-22 07:11:01 +00:00
SelectionDAGNodes.h [PPC] Change i32 constant in store instruction to i64 2017-11-16 18:27:34 +00:00
SelectionDAGTargetInfo.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SlotIndexes.h Make more constructors constexpr or use =default. 2017-10-08 15:59:35 +00:00
StackMaps.h Modularize: Include some required headers 2017-11-03 20:24:19 +00:00
StackProtector.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
TailDuplicator.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetCallingConv.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetFrameLowering.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetInstrInfo.h Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
TargetLowering.h [DAG] Do MergeConsecutiveStores again before Instruction Selection 2017-11-27 15:28:15 +00:00
TargetLoweringObjectFile.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetLoweringObjectFileImpl.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetOpcodes.def [aarch64][globalisel] Define G_ATOMIC_CMPXCHG and G_ATOMICRMW_* and make them legal 2017-11-28 20:21:15 +00:00
TargetOpcodes.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetPassConfig.h Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
TargetRegisterInfo.h [CodeGen] Print register names in lowercase in both MIR and debug output 2017-11-28 17:15:09 +00:00
TargetSchedule.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
TargetSubtargetInfo.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
UnreachableBlockElim.h
ValueTypes.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
ValueTypes.td [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
VirtRegMap.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
WinEHFuncInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00