8b4c502098d8a8aee52f2251db5614d9d26c83e2 |
|
29-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification in the entire code generator. Some targets still mess up the liveness information, but that isn't verified after MRI->invalidateLiveness(). The verifier can still check other useful things like register classes and CFG, so it should be enabled after all passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
eabae1d07bffac60d9f4f2473cf6736d6a1c372d |
|
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
s/SjLjEHPass/SjLjEHPrepare/ No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f91a330329aecec00a322ccf4b0438ffbd620574 |
|
09-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::enablePass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
9b3b95fab736f7daea11cd0220af9148775466d4 |
|
02-Mar-2012 |
Jia Liu <proljc@gmail.com> |
delete dead code, patch by Michael Spencer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
79bf288584215f3f3c49050ac1691a6b29c56fec |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Allow CodeGen (llc) command line options to work as expected. The llc command line options for enabling/disabling passes are local to CodeGen/Passes.cpp. This patch associates those options with standard pass IDs so they work regardless of how the target configures the passes. A target has two ways of overriding standard passes: 1) Redefine the pass pipeline (override TargetPassConfig::add%Stage) 2) Replace or suppress individiual passes with TargetPassConfig::substitutePass. In both cases, the command line options associated with the pass override the target default. For example, say a target wants to disable machine instruction scheduling by default: - The target calls disablePass(MachineSchedulerID) but otherwise does not override any TargetPassConfig methods. - Without any llc options, no scheduler is run. - With -enable-misched, the standard machine scheduler is run and honors the -misched=... flag to select the scheduler variant, which may be used for performance evaluation or testing. Sorry overridePass is ugly. I haven't thought of a better way without replacing the cl::opt framework. I hope to do that one day... I haven't figured out why CodeGen uses char& for pass IDs. AnalysisID is much easier to use and less bug prone. I'm using it wherever I can for internal implementation. Maybe later we can change the global pass ID definitions as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5e108eeeef34dd2afa00d1da77bca47188de4244 |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5fd84a24e6bfccc31b6daff7b54b2b13fb2906f6 |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
746f24b732830f434032de5d2d321e6ad1f8e782 |
|
11-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Add TargetPassConfig hooks for scheduling/bundling. In case the MachineScheduling pass I'm working on doesn't work well for another target, they can completely override it. This also adds a hook immediately after the RegAlloc pass to cleanup immediately after vregs go away. We may want to fold it into the postRA hook later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fda655ec23f33ad8f9d5ca75608ddf441c76be9a |
|
11-Feb-2012 |
Andrew Trick <atrick@apple.com> |
comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8dd26253f54247e77e5accfdd70e7b4bf27b39c2 |
|
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
RegAlloc superpass: includes phi elimination, coalescing, and scheduling. Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f7b96311d20dc19647833ec23fc6d7870b2ffb10 |
|
09-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Improve TargetPassConfig. No intended functionality. Split CodeGen into stages. Distinguish between optimization and correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
1dd8c8560d45d36a8e507cd014352f1d313f9f9e |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Codegen pass definition cleanup. No functionality. Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods. While cleaning up declarations, cleaned up comments (sorry for large diff). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
9d41bd5c78b99750d820e01bcd4a4e479b713d4c |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: MachineLICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
32986572bfe5a30c500d03b8d55174720f08f0bf |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: StackSlotColoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
c7d081b5946b9ff9f7400d5b41f36cad3fc317aa |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: PostRAScheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
61f1e3db43e556f495b6b9360d2f550291f78471 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: BranchFolderPass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ffea03f2165c5a4fda672495bf853aa2d8c7d1b5 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::setOpt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ebe18ef5c286bb7c33f6c43f1963a7d22cd73f40 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added Pass::createPass(ID) to handle pass configuration by ID git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d2a7bedbc9d3db35ff424a6a2d257c72341af224 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move pass configuration out of pass constructors: TailDuplicate::PreRegAlloc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
061efcfb3e79899493d857f49e50d09f29037e0a |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
TargetPassConfig: confine the MC configuration to TargetMachine. Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
7461334084aa77286b6f9af596fb0f6ba0465685 |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Make TargetPassConfig an ImmutablePass so CodeGenPasses can query options git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f1f78d5266dd67e25f23904578d69384bb53a6f7 |
|
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Initialize all common codegen passes before configuration so we can use their PassIDs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
843ee2e6a46b2b2d74a84c2eea68dec35cb359cc |
|
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig. The first little step toward configuring codegen passes. Allows command line overrides to be centralized in LLVMTargetMachine.cpp. LLVMTargetMachine can intercept common passes and give precedence to command line overrides. Allows adding "internal" target configuration options without touching TargetOptions. Encapsulates the PassManager. Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs. Allows modifying the target configuration hooks without rebuilding the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ef2887d3486a1814e5a4c1c1c6acc7d815334c80 |
|
19-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
More bundle related API additions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
42b7a71dc7381d1f38bf7b7201fc26dd80453364 |
|
17-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Renamed MachineScheduler to ScheduleTopDownLive. Responding to code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
96f678f2d78ae9a2a8c99ca612bf59c056b36797 |
|
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Added the MachineSchedulerPass skeleton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
977679d6034791fd48a344e5b990503ba50fc242 |
|
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Added a late machine instruction copy propagation pass. This catches opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ddfd1377d2e4154d44dc3ad217735adc15af2e3f |
|
14-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function to finalize MI bundles (i.e. add BUNDLE instruction and computing register def and use lists of the BUNDLE instruction) and a pass to unpack bundles. - Teach more of MachineBasic and MachineInstr methods to be bundle aware. - Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to prevent IT blocks from being broken apart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
799c1ede712854f56ed85b74702e611b88b49436 |
|
12-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the linear scan register allocator. RegAllocGreedy has been the default for six months now. Deleting RegAllocLinearScan makes it possible to also delete VirtRegRewriter and clean up the spiller code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
37efc9fe42a4867c81526cac7fca9fe0ea04a484 |
|
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin collecting some of the statistics for block placement discussed on the mailing list. Suggestions for other statistics to collect would be awesome. =] Currently these are implemented as a separate pass guarded by a separate flag. I'm not thrilled by that, but I wanted to be able to collect the statistics for the old code placement as well as the new in order to have a point of comparison. I'm planning on folding them into the single pass if / when there is only one pass of interest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
db35087d21f09fdde81cab7e12fc0bcd8b7d00e9 |
|
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement a block placement pass based on the branch probability and block frequency analyses. This differs substantially from the existing block-placement pass in LLVM: 1) It operates on the Machine-IR in the CodeGen layer. This exposes much more (and more precise) information and opportunities. Also, the results are more stable due to fewer transforms ocurring after the pass runs. 2) It uses the generalized probability and frequency analyses. These can model static heuristics, code annotation derived heuristics as well as eventual profile loading. By basing the optimization on the analysis interface it can work from any (or a combination) of these inputs. 3) It uses a more aggressive algorithm, both building chains from tho bottom up to maximize benefit, and using an SCC-based walk to layout chains of blocks in a profitable ordering without O(N^2) iterations which the old pass involves. The pass is currently gated behind a flag, and not enabled by default because it still needs to grow some important features. Most notably, it needs to support loop aligning and careful layout of loop structures much as done by hand currently in CodePlacementOpt. Once it supports these, and has sufficient testing and quality tuning, it should replace both of these passes. Thanks to Nick Lewycky and Richard Smith for help authoring & debugging this, and to Jakob, Andy, Eric, Jim, and probably a few others I'm forgetting for reviewing and answering all my questions. Writing a backend pass is *sooo* much better now than it used to be. =D git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
df4b35e3dd85fead444e23b477d61dfd43e1fb6f |
|
28-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove X86-dependent stuff from SSEDomainFix. This also enables domain swizzling for AVX code which required a few trivial test changes. The pass will be moved to lib/CodeGen shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
74e2d6ea66a9289fc3c00583f3c2b2abd84e1866 |
|
25-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up code after renaming LowerSubregs -> ExpandPostRAPseudos. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
27215676c7114132a0374f7b5c9ea73d9354d329 |
|
09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Refer to the RegisterCoalescer pass by ID. A public interface is no longer needed since RegisterCoalescer is not an analysis any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f10711fb8c8b5596e973bcc27b5af6203fec34b4 |
|
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove the experimental (and unused) pre-ra splitting pass. Greedy regalloc can split live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5b220213bfe9c37c2bb41a7ae0804e06a14f1007 |
|
27-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
There is only one register coalescer. Merge it into the base class and remove the analysis group. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8bfe50871f9cb1b022483e0e1307ab5b8c9e5650 |
|
06-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add the SpillPlacement analysis pass. This pass precomputes CFG block frequency information that can be used by the register allocator to find optimal spill code placement. Given an interference pattern, placeSpills() will compute which basic blocks should have the current variable enter or exit in a register, and which blocks prefer the stack. The algorithm is ready to consume block frequencies from profiling data, but for now it gets by with the static estimates used for spill weights. This is a work in progress and still not hooked up to RegAllocGreedy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8dd070edc2209ecfdae49780ec1596b349e2cbd1 |
|
04-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Turn the EdgeBundles class into a stand-alone machine CFG analysis pass. The analysis will be needed by both the greedy register allocator and the X86FloatingPoint pass. It only needs to be computed once when the CFG doesn't change. This pass is very fast, usually showing up as 0.0% wall time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
89cab93fe999f6d81b4b99a71ac797b7ecfec277 |
|
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass a Banner argument to the machine code verifier both from createMachineVerifierPass and MachineFunction::verify. The banner is printed before the machine code dump, just like the printer pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ceadc01e9101329cd820ee687f85c012e9609ab1 |
|
16-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineLoopRanges analysis. A MachineLoopRange contains the intervals of slot indexes covered by the blocks in a loop. This representation of the loop blocks is more efficient to compare against interfering registers during register coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
cba2e06d525b723849cd8e1f083eb1e59a494b4e |
|
08-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stub out RegAllocGreedy. This new register allocator is initially identical to RegAllocBasic, but it will receive all of the tricks that RegAllocBasic won't get. RegAllocGreedy will eventually replace linear scan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8ec9d62380f7139c7c85bae9609e8e93d2799500 |
|
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Rename ExpandPseudos to ExpandISelPseudos to help clarify its role. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
668ac2fdae69ed358ecf690d6a07428e5a9ee2f7 |
|
16-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Split pseudo-instruction expansion into a separate pass, to make it easier to debug, and to avoid complications when the CFG changes in the middle of the instruction selection process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2d17293dd00d32208c7857ecdb20b79b0225c353 |
|
26-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the spiller responsible for updating the LiveStacks analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
14e8d71cc945034d4ee6e76be00e00f14efac62f |
|
23-Oct-2010 |
Andrew Trick <atrick@apple.com> |
This is a prototype of an experimental register allocation framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f70e7cc7a2871d498dbecbec2d1c3beb3da2af33 |
|
23-Sep-2010 |
Lang Hames <lhames@gmail.com> |
Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details. Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
22efc18f12d8d5d0fa23b559121d211f4ea222f6 |
|
31-Aug-2010 |
Duncan Sands <baldrick@free.fr> |
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
3d72367d30c9ce6f387764a028763f7a366cc443 |
|
14-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a local stack object block allocation pass. This is still an experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
6cdb1abe4e4f6364649e7ef656589441754e82ae |
|
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f691229384e9a29a9009d92f8b16abb988aa2357 |
|
06-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e4ddbdfd3cf031034020671d03626f0373fbd5ca |
|
06-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Add the Optimize Compares pass (disabled by default). This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
73cf709a08d480c4315dc4aa9f644cf86494c4cf |
|
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8a3eab9b20acb7193285bc31c9a3e23c7c7d7173 |
|
15-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the local register allocator. Please use the fast allocator instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
700bfada6375546f82000bdd1b4cdbe87beebea5 |
|
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -regalloc=default option that chooses a register allocator based on the -O optimization level. This only really affects llc for now because both the llvm-gcc and clang front ends override the default register allocator. I intend to remove that code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
1fa1c7b23bd06d2c1b37aa0f0cf7740fa6759e0b |
|
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove ancient prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
00207237ddfffe93b275914d086a0c7da1bbf63b |
|
21-Apr-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add fast register allocator, enabled with -regalloc=fast. So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
55e59c186303ff02c0be7429da3b1b36c347f164 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d94671a25e65918557a2c03c0fc12a60a5d138bf |
|
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Post regalloc LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5c8aa950fe3484b6e115647328c196f8be64f9ed |
|
03-Apr-2010 |
David Greene <greened@obbligato.org> |
Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
cf5862d8ac9562e633e6ef7cb55e67c2b7ca9c0a |
|
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 100204. It broke a bunch of tests and apparently changed what passes are run during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
434bd8551d71384648f2e155d76b5ddbc4d1b258 |
|
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Let's try this again. Re-apply 100143 including an apparent missing <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
1d8f83d0a00e912c55ec0974eba6122666cc6fa1 |
|
02-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert r100143. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8ef3acba00c9c42d450fa52c7d3faebce1e507dd |
|
02-Apr-2010 |
David Greene <greened@obbligato.org> |
Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
c6fe333688519c5a28d1e0f30ecdaa2ad8f1d410 |
|
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of a machine level cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fb76fe09297ee292129e44d723127f2408602a3d |
|
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix various doxygen warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fe61fb1e1082c81653ed78efd6d471592a2e57ad |
|
12-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a new pass on machine instructions to optimize away PHI cycles that reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e45ab8a0a90e4f3a59d8c38038ae3e495ee1fef3 |
|
19-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
For aligned load/store instructions, it's only required to know whether a function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
7da9ecf9677b751d81515f95168ae3cb2df54160 |
|
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
79fc6f44b64f47b8a7d5e298c9f3c596b89fa88d |
|
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a pre-regalloc tail duplication pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e27d205d5d4d53cceabcd6325533fbdf9c0cee42 |
|
02-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Factor the stack alignment calculations out into a target independent pass. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2d521e51acd5f1a0100cbbe4c611a35c978c2456 |
|
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rename new TailDuplicationPass to avoid name conflict with the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
15acadde5f87703da5f36721a19c09a7e3f97f53 |
|
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Split tail duplication into a separate pass. This is needed to avoid running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f5a7a2c84a1951151fee4e7e34d1d94ef0c31fa8 |
|
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove DebugLabelFolder pass. It is not used by dwarf writer anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8bedf97f683bd5edb9308799a5e525de137d635c |
|
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put in these EH changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f58898fd41a61d8f02657c3ecddb085c39c0d773 |
|
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting r85338 for now. It's causing a bootstrap failure on PPC darwin9. --- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
a597103c328e29fb763e7a4864bd7c29a588fc9d |
|
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r85346 change to control tail merging by CodeGenOpt::Level. I'm going to redo this using the OptimizeForSize function attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
cd4f04d6bcb7aefa24d92582fbadfe17519f4756 |
|
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Record CodeGen optimization level in the BranchFolding pass so that we can use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fa16354e0370fe884830286923352268b036737d |
|
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change createPostRAScheduler so it can be turned off at llc -O1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
f436463dbd35ea816163a053b304d9fef9e0cf25 |
|
17-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove simple regalloc. It has bit rotted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
cf143a4d917699f8f4202f331fa9e184070471fb |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove std::ostream versions of printing stuff for MBB and MF, upgrading a few things to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8b818d7e98309125c6058c4ea72a7dc73b031db2 |
|
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the sjlj exception handling conversions to a back-end pass where they more properly belong. This allows removing the front-end conditionalized SJLJ code, and cleans up the generated IR considerably. All of the infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is added by the SjLjEHPrepare pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
275872e79950dafc6699f6502cee52f74b84a22a |
|
03-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some comments referring to std::cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ad2afc2a421a0e41603d5eee412d4d8c77e9bc1c |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
c5b19b21d84814d19692a6bbea11fbd135f4b094 |
|
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
933c762371fe8cc6e2ef5d00d6866f4924852fed |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2f75c727f2bc4d76036d12a65c5e21a37e097b90 |
|
31-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Removed the BigBlock register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
b0f1e1780c736c62fb99e5824825d2a60a53b53b |
|
22-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add a new codegen pass that normalizes dwarf exception handling code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
48872e0d84b47769be6c13ae98bf88468b59d921 |
|
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass to verify generated machine code. The following is checked: * Operand counts: All explicit operands must be present. * Register classes: All physical and virtual register operands must be compatible with the register class required by the instruction descriptor. * Register live intervals: Registers must be defined only once, and must be defined before use. The machine code verifier is enabled with the command-line option '-verify-machineinstrs', or by defining the environment variable LLVM_VERIFY_MACHINEINSTRS to the name of a file that will receive all the verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
bbf1db72133e9cf986e4da6260736335533067db |
|
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename "loop aligner" pass to "code placement optimization" pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2c1d7726f25b6b219a1518b411351b99d25c1a02 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Just turn aggressive stack coloring off at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d0c1f9c932e9da29ea4c6e9a863f1567c6e61477 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71010. It was causing massive failures during self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8c87ae229c43939f5868b5778c53e787df0927ef |
|
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Forgot this in the last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e9e6bdf27fca46dc9eca2ebdf73e03747d1859ab |
|
13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
80a320d974dae7666157e80b141d7ff97e5f6544 |
|
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Update in response to feedback from Chris: - Use enums instead of magic numbers. - Rework algorithm to use the bytes size from the target to determine when to emit stack protectors. - Get rid of "propolice" in any comments. - Renamed an option to its expanded form. - Other miscellanenous changes. More changes will come after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2b58ce5ab4e22e796303d68fb246d4031cb5d4ca |
|
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Initial checkin for stack protectors. Here's what it does: * The prologue is modified to read the __stack_chk_guard global and insert it onto the stack. * The epilogue is modified to read the stored guard from the stack and compare it to the original __stack_chk_guard value. If they differ, then the __stack_chk_fail() function is called. * The stack protector needs to be first on the stack (after the parameters) to catch any stack-smashing activities. Front-end support will follow after a round of beta testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
09e8ca8a582bb67ef290d77d9b9441716dd6ba2e |
|
20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton for the pre-register allocation live interval splitting pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
b1290a6cc40f7caa0351450ce7021a0d48b5f2c0 |
|
02-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
A Partitioned Boolean Quadratic Programming (PBQP) based register allocator. Contributed by Lang Hames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d3ead4329eaa46937245f5cc8402e749af2a37dc |
|
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new MachineInstr-level DCE pass. It is very simple, and is intended to be used with fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5eca075b74d62c621b160aa216b4cd50829a2cc7 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
bd3ba461eb5578a81ba09ff7bd7eb271d1130196 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
- Fix SelectionDAG to generate correct CFGs. - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
3f32d65912b4da23793dab618d981be2ce11c331 |
|
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a stack slot coloring pass. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
6ddba2b933645d308428201e942abe1274fa5085 |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fb8075d03f5c87bd57dcc9c5f2304f6b13c55aad |
|
28-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to 16-byte boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
67d65bb69d5cad957cbb6d672dc0b4a19c211a42 |
|
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't recalculate the loop info and loop dominators analyses if they're preserved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
c4ce73f666e7ab9a270982a575101df8aa6160d3 |
|
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking. It is missing validity checks, so it is known broken. However, it is powerful enough to compile this contrived code: void test1(int C, double A, double B, double *P) { double Tmp = A*A+B*B; *P = C ? Tmp : A; } into: _test1: movsd 8(%esp), %xmm0 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movsd 16(%esp), %xmm1 mulsd %xmm1, %xmm1 mulsd %xmm0, %xmm0 addsd %xmm1, %xmm0 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test1: movsd 16(%esp), %xmm0 mulsd %xmm0, %xmm0 movsd 8(%esp), %xmm1 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 addsd %xmm0, %xmm2 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movapd %xmm2, %xmm1 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm1, (%eax) ret woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
7ed47a13356daed2a34cd2209a31f92552e3bdd8 |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Don't attribute in file headers anymore. See llvmdev for the discussion of this change. Boy are my fingers tired. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ad93c4f936d220570535711262e0fff8857f798a |
|
11-Dec-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
CollectorMetadata and Collector are rejiggered to get along with per-function collector model. Collector is now the factory for CollectorMetadata, so the latter may be subclassed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
0f940c95d4506f8d04fa2aeda8a79cadb3105fe3 |
|
07-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the machine code LICM pass. It successfully hoists this: _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fe0c882e5a6ddf4e3c9f771485fdaa4672759539 |
|
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need to be a pass of its own. Instead, move it out into a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d195ce1fb6539469bf1e82c41d5a8c2efdb5f61b |
|
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Make BreakCriticalMachineEdges available as a pass that can be depended on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
0bda0e8895285c3a03c8859e11f2fff69861fd9d |
|
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Add the skeleton of a better PHI elimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2c17c4d8d9f232f0329786ad9abee976bc0f3d27 |
|
06-Sep-2007 |
David Greene <greened@obbligato.org> |
Pluggable coalescers inplementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
98363225a3badb3cfbe539b0a000ef108b0fea87 |
|
06-Aug-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Implement review feedback. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
bab2474b64e81be0ed4fc35d16cdfac65f283361 |
|
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e7e7d0d7e39d0c7c659d26b97e8081fce0fcd749 |
|
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Skeleton of post-RA scheduler; doesn't do anything yet. Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ff8b732feb4475d376ebb2344ed3445bbc6a1659 |
|
02-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Remove declarations for code no longer in the tree, to avoid confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
a8c768293966822840199b496a9b020b6b460e8d |
|
22-Jun-2007 |
Duraid Madina <duraid@octopus.com.au> |
check in the BigBlock local register allocator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
2513330de8f8020d15d5bc96640a0957b7c733b9 |
|
08-Jun-2007 |
David Greene <greened@obbligato.org> |
Factor live variable analysis so it does not do register coalescing simultaneously. Move that pass to SimpleRegisterCoalescing. This makes it easier to implement alternative register allocation and coalescing strategies while maintaining reuse of the existing live interval analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
81da02b553b86868637f27b89c6e919c31ed5b51 |
|
22-May-2007 |
Dale Johannesen <dalej@apple.com> |
Make tail merging the default, except on powerPC. There was no prior art for a target-dependent default with a command-line override; this way should be generally usable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
4e654852f1bee3813dcc1d207710f041cdd22717 |
|
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Initial commit of (very basic) if converter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
a90ba6c2aaaf30d1109d064305d361c89ff43ea3 |
|
29-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Oops! didn't mean to put this in there yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
68fe61d6a165ea6090008e281330895a21607daf |
|
29-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Replacing std::iostreams with llvm iostreams. Some of these changes involve adding a temporary wrapper around the ostream to make it friendly to functions expecting an LLVM stream. This should be fixed in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
9d4209fb82cab74bae76511e3f21ef1c24ec948a |
|
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Add a pass to fold debug label instructions so a debug info client can detect empty ranges. 2. Reorg how MachineDebugInfo maintains changes to debug labels. 3. Have dwarf writer use debug label info to simplify scopes and source line coorespondence. 4. Revert the merging of compile units until I can get the bugs ironed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
41e087c7e60b4d37db3c6677b9306c79693d0074 |
|
24-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Remove a prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
9d6b6280c788e92753d3f8e3e67017e36d14eb12 |
|
01-May-2005 |
Tanya Lattner <tonic@nondot.org> |
Adding ModuloSched SB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ea61c358720aa6c7a159d51658b34276316aa841 |
|
21-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
36c29dbbeede86ef94e67ef7e5858f190ae0b83a |
|
31-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
New pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
910d0d6066f55fba7c67f2b42dd7eb4f971ca49a |
|
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add Iterative scan register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
8b708e47525804909aba529faa9d2e2fa4895d72 |
|
02-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add a new pass for code generators to use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
5a75c919515a6142d3bc0d477627fbd27dc1cc8a |
|
08-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Registering the ModuloScheduling pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
fc1f6e835ce87baab978ea8c3673b1be73a2e23e |
|
04-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Include <iosfwd> and <string> instead of <iostream>. Take away the default iostream argument of createMachineFunctionPrinterPass(), at Chris's request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
09caa3751f3c53a8c8a7a81c2a60d6c8ddf5a980 |
|
30-Jan-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Give clients of MachineFunctionPrinter the ability to specify a banner and choose an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
3e200e6c3b22610ef27eb5364bb10a485b1e8e2c |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Rearrange code, indent for the namespace, add the createMachineFunctionPrinterPass to passes.h, and add the machien destruction pass to Passes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
4c080863de86448d905beab27686da823b6d44c1 |
|
18-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove TwoAddressInstruction from the public headers and add an ID instead, since this pass doesn't expose any state to its users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ff0cbe175df40e0d2b36e59c6fb72f211f1cba4c |
|
20-Nov-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM copyright header (for lack of a better term). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
7237ecef134cd88aad13190f078ff23057bfcb71 |
|
02-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
eed462b6857e596d327886acab4ad7e22db953ce |
|
02-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change llc command line for register allocators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
e5d1a22ef2c08b1d0b5dae612428017e19d0641b |
|
30-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Forward declare a class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
086610926fb12b35881c06d40c295be81ddc3173 |
|
30-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Include the sparc register in this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
ef6a6a69ff1e1b709d0acb315b9f6c926c67a778 |
|
22-Aug-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
The word `dependent' has no `a'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
19df3876e6dce016ec4c5ab28320a246ab285001 |
|
13-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Factory methods for FunctionPasses now return type FunctionPass *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|
db00065fc8ab9fe8b7ac87640c57fd61e922c0f2 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add new files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/Passes.h
|