[PATCH] D20769: [IPRA] Interprocedural Register Allocation
Vivek Pandya via llvm-commits
llvm-commits at lists.llvm.org
Sat May 28 03:12:39 PDT 2016
vivekvpandya created this revision.
vivekvpandya added reviewers: joker-eph, hfinkel, qcolombet.
vivekvpandya added a subscriber: llvm-commits.
This commit addes pass to change CodeGen order to be bottom up order on Call Graph. The patch for the same has been provided by dear Mehdi Amini.
This commit added required passes for IPRA.
1) lib/CodeGen/RegUsageInfoCollector.cpp (MachineFunction Pass) to create RegMask based on actual register usage, scheduled at POST-RA
2) lib/CodeGen/PhysicalRegisterUsageInfo.cpp (Immutable Pass) to store RegMask details for functions which has been processed in bottom up order on Call Graph, Scheduled before RegAllocation.
3) lib/Target/X86/X86RegUsageInfoPropagate.cpp (Target Specific MachineFunction Pass) to update RegMasks of call instr in caller function based on the RegMask returned by immutable pass, scheduled at Pre-RegAlloc.
This commit also addes a method setRegMask() to MachineOperand class.
This commit also addes command line option to enable IPRA -enable-ipra and debug type -debug-only="ipra".
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 20582 bytes
Desc: not available
More information about the llvm-commits