69d37fa6351d5fe2a97ea24a2d0d667a92f14a9c |
|
05-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove unused #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
d7c7a686ac18f8f3c035d158d8b713077be83ea4 |
|
10-Feb-2013 |
Cameron Zwarich <zwarich@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
02c6325a4592fefebc837b677eaf87dc532ecb7c |
|
17-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Provide a place for targets to insert ILP optimization passes. Move the early if-conversion pass into this group. ILP optimizations usually need to find the right balance between register pressure and ILP using the MachineTraceMetrics analysis to identify critical paths and estimate other costs. Such passes should run together so they can share dominator tree and loop info analyses. Besides if-conversion, future passes to run here here could include expression height reduction and ARM's MLxExpansion pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
e4ba75f43e2ab1480d119d2d4eb878256274e0fb |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the SCEV expander and LoopStrengthReduce to use TargetTransformInfo rather than TargetLowering, removing one of the primary instances of the layering violation of Transforms depending directly on Target. This is a really big deal because LSR used to be a "special" pass that could only be tested fully using llc and by looking at the full output of it. It also couldn't run with any other loop passes because it had to be created by the backend. No longer is this true. LSR is now just a normal pass and we should probably lift the creation of LSR out of lib/CodeGen/Passes.cpp and into the PassManagerBuilder. =] I've not done this, or updated all of the tests to use opt and a triple, because I suspect someone more familiar with LSR would do a better job. This change should be essentially without functional impact for normal compilations, and only change behvaior of targetless compilations. The conversion required changing all of the LSR code to refer to the TTI interfaces, which fortunately are very similar to TargetLowering's interfaces. However, it also allowed us to *always* expect to have some implementation around. I've pushed that simplification through the pass, and leveraged it to simplify code somewhat. It required some test updates for one of two things: either we used to skip some checks altogether but now we get the default "no" answer for them, or we used to have no information about the target and now we do have some. I've also started the process of removing AddrMode, as the TTI interface doesn't use it any longer. In some cases this simplifies code, and in others it adds some complexity, but I think it's not a bad tradeoff even there. Subsequent patches will try to clean this up even further and use other (more appropriate) abstractions. Yet again, almost all of the formatting changes brought to you by clang-format. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
ab37b2c4bb23ab80f92429b59d812ed491c14ea6 |
|
21-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Add targets to skip running the GC passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
08510b14d4fe5d9b1a979fbee8a7aad11dbc6cea |
|
30-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
Replace r168930 with a more reasonable patch. The original patch removed a bunch of code that the SjLjEHPrepare pass placed into the entry block if all of the landing pads were removed during the CodeGenPrepare class. The more natural way of doing things is to run the CGP *before* we run the SjLjEHPrepare pass. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
8f54a53f0ed2091e05d5ca87d239487da292cbbc |
|
19-Nov-2012 |
Craig Topper <craig.topper@gmail.com> |
Move else onto line with preceding closing brace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
ad1cc1d1bfc0accd3f1af5c02ac367ff46a4bfdf |
|
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow subtargets to enable misched and dependent options. This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want to: - Disable SelectionDAG scheduling (use the source order scheduler) - Enable more aggressive coalescing (until we decide to always run the coalescer this way) - Enable MachineScheduler pass itself. Disabling PostRA sched may follow for some subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
a04a4a79ea365d1ba96ed4b5861e879b267162e2 |
|
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
revert r166264 because the LTO build is still failing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
725f1d12801109a3b1d081a6e1c9e44426b2cf34 |
|
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
recommit the patch that makes LSR and LowerInvoke use the TargetTransform interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
3b9a911efcf280950f878a050728450423875639 |
|
18-Oct-2012 |
Bob Wilson <bob.wilson@apple.com> |
Temporarily revert the TargetTransform changes. The TargetTransform changes are breaking LTO bootstraps of clang. I am working with Nadav to figure out the problem, but I am reverting it for now to get our buildbots working. This reverts svn commits: 165665 165669 165670 165786 165787 165997 and I have also reverted clang svn 165741 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
e3d0e86919730784faaddcb5d9b0257c39b0804b |
|
11-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new interface to allow IR-level passes to access codegen-specific information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
0d141f867d49dadc2f7580b149464f1e8e095f03 |
|
03-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
The early if conversion pass is ready to be used as an opt-in. Enable the pass by default for targets that request it, and change the -enable-early-ifcvt to the opposite -disable-early-ifcvt. There are still some x86 regressions when enabling early if-conversion because of the missing machine models. Disable the pass for x86 until machine models are added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
c05d30601ced172b55be81bb529df6be91d6ae15 |
|
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
59324297650c12a8dccf1a7ad650a9e895fdc17e |
|
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Stop casting away const qualifier needlessly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
228e3f5fac0ceef9f6fe22d1621ac32bae5d3177 |
|
20-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a verification pass after ExpandISelPseudos. This pass often has weird CFG hacks and hand-written MI building code that can go wrong in many ways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
dcc4436cddc9b5d155040ed3ed38e9070ec4e3b8 |
|
04-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an experimental -early-live-intervals option. This option runs LiveIntervals before TwoAddressInstructionPass which will eventually learn to exploit and update the analysis. Eventually, LiveIntervals will run before PHIElimination, and we can get rid of LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
f86c00f1f89082c800dbb78870fc5537eb3702f6 |
|
04-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make sure -print-machineinstrs applies to the first pass as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
33242fd3ed5586091e73254b58dd1825e9d53c60 |
|
04-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an experimental early if-conversion pass, off by default. This pass performs if-conversion on SSA form machine code by speculatively executing both sides of the branch and using a cmov instruction to select the result. This can help lower the number of branch mispredictions on architectures like x86 that don't have predicable instructions. The current implementation is very aggressive, and causes regressions on mosts tests. It needs good heuristics that have yet to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
6068c48498e9af1076b1b5f2499e176e7e9c0f34 |
|
03-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
All glory to address sanitizer. ;] It appears to have caught a use-after-free introduced as by r159567 and/or friends which call 'addPass' from many more places. The bug in 'addPass' doesn't appear to be new, and was spotted by inspection when ASan shown a bright light of a stacktrace at these functions. Hopefully this will fix the ASan failure -- I have no test case other than running an ASan-built clang over the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
30a507a1f5d6a5646dd3481eba6958424415c886 |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Extend TargetPassConfig to allow running only a subset of the normal passes. This is still a work in progress but I believe it is currently good enough to fix PR13122 "Need unit test driver for codegen IR passes". For example, you can run llc with -stop-after=loop-reduce to have it dump out the IR after running LSR. Serializing machine-level IR is not yet supported but we have some patches in progress for that. The plan is to serialize the IR to a YAML file, containing separate sections for the LLVM IR, machine-level IR, and whatever other info is needed. Chad suggested that we stash the stop-after pass in the YAML file and use that instead of the start-after option to figure out where to restart the compilation. I think that's a great idea, but since it's not implemented yet I put the -start-after option into this patch for testing purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
6b2bb15bf7c77918adc433646846f6847d421257 |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Move assertion with TargetPassConfig's Initialized flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
3fb99a73686c39d9855b3f8881add977af3868cb |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Consistently use AnalysisID types in TargetPassConfig. This makes it possible to just use a zero value to represent "no pass", so the phony NoPassID global variable is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
564fbf6aff8fb95646a1290078a37c2d4dbe629f |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add all codegen passes to the PassManager via TargetPassConfig. This is a preliminary step toward having TargetPassConfig be able to start and stop the compilation at specified passes for unit testing and debugging. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
34f5a2b596236a5452ddc664066138ca7a0c7af2 |
|
26-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow targets to inject passes before the virtual register rewriter. Such passes can be used to tweak the register assignments in a target-dependent way, for example to avoid write-after-write dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
5984d2b31fe3c69e46d2b81439a8c3ef0bdf9a91 |
|
25-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Run ProcessImplicitDefs on SSA form where it can be much simpler. Implicitly defined virtual registers can simply have the <undef> bit set on all uses, and copies can be turned into implicit defs recursively. Physical registers are a bit trickier. We handle the common case where a physreg def is used by a nearby instruction in the same basic block. For more complicated cases, just leave the IMPLICIT_DEF instruction in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
05ec712e7f75635abbdd84dced69f4a45fe0f541 |
|
09-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reintroduce VirtRegRewriter. OK, not really. We don't want to reintroduce the old rewriter hacks. This patch extracts virtual register rewriting as a separate pass that runs after the register allocator. This is possible now that CodeGen/Passes.cpp can configure the full optimizing register allocator pipeline. The rewriter pass uses register assignments in VirtRegMap to rewrite virtual registers to physical registers, and it inserts kill flags based on live intervals. These finalization steps are the same for the optimizing register allocators: RABasic, RAGreedy, and PBQP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
6e1b8128505711276a87e96f6bffb818b435cbd5 |
|
30-May-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add an insertPass API to TargetPassConfig. <rdar://problem/11498613> Besides adding the new insertPass function, this patch uses it to enhance the existing -print-machineinstrs so that the MachineInstrs after a specific pass can be printed. Patch by Bin Zeng! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
7c4ce30ea6a9d0410f306e805403dd224c3df65c |
|
01-May-2012 |
Bill Wendling <isanbard@gmail.com> |
Change the PassManager from a reference to a pointer. The TargetPassManager's default constructor wants to initialize the PassManager to 'null'. But it's illegal to bind a null reference to a null l-value. Make the ivar a pointer instead. PR12468 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
9e67db4af13abb967cae5858502207a43d26bf84 |
|
16-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Flip the new block-placement pass to be on by default. This is mostly to test the waters. I'd like to get results from FNT build bots and other bots running on non-x86 platforms. This feature has been pretty heavily tested over the last few months by me, and it fixes several of the execution time regressions caused by the inlining work by preventing inlining decisions from radically impacting block layout. I've seen very large improvements in yacr2 and ackermann benchmarks, along with the expected noise across all of the benchmark suite whenever code layout changes. I've analyzed all of the regressions and fixed them, or found them to be impossible to fix. See my email to llvmdev for more details. I'd like for this to be in 3.1 as it complements the inliner changes, but if any failures are showing up or anyone has concerns, it is just a flag flip and so can be easily turned off. I'm switching it on tonight to try and get at least one run through various folks' performance suites in case SPEC or something else has serious issues with it. I'll watch bots and revert if anything shows up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
78811669d5872b28c447ea9f7cfc3963c7f72841 |
|
29-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification after PreSched2 passes. The late scheduler depends on accurate liveness information if it is breaking anti-dependencies, so we should be able to verify it. Relax the terminator checking in the machine code verifier so it can handle the basic blocks created by if conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
2ef5bf6b34cb0041648e7cb857d2c6e673d0550b |
|
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also verify after ExpandPostRAPseudos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
663ee20cc4b13b6d37ad1578050d8c3cc31eeff5 |
|
28-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable machine code verification after the late machine optimization passes. Branch folding invalidates liveness and disables liveness verification on some targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
17d35e57a585e869dc3084666abd17f173723735 |
|
14-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched: implemented a framework for top-down or bottom-up scheduling. New flags: -misched-topdown, -misched-bottomup. They can be used with the default scheduler or with -misched=shuffle. Without either topdown/bottomup flag -misched=shuffle now alternates scheduling direction. LiveIntervals update is unimplemented with bottom-up scheduling, so only -misched-topdown currently works. Capped the ScheduleDAG hierarchy with a concrete ScheduleDAGMI class. ScheduleDAGMI is aware of the top and bottom of the unscheduled zone within the current region. Scheduling policy can be plugged into the ScheduleDAGMI driver by implementing MachineSchedStrategy. ConvergingScheduler is now the default scheduling algorithm. It exercises the new driver but still does no reordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
01b623c8c2d1bd015a8bb20eafee3322575eff8f |
|
21-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix machine-cp by having it to check sub-register indicies. e.g. ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
1a7ea9dd0431287a7346cd107680deb444d39f51 |
|
16-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Disable machine copy propagation for now. It's known to be buggy (PR11940) and introduces subtle miscompiles in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
900d7b78e6cacca6c6062abf803d7ab1a4e39b38 |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Revert r150565 again. Appears to be a stage2 failure with dragonegg. I'll put MachineLICM back before PEI. All my arm/x86 benchmarks look good, but buildbots don't like it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
788066a1f46872d076d4c7ae561b76237a625b69 |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Reapply r150565 with the typo fix properly merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
40bb92a5cc199d5973b7306345e3329c3477ac86 |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
reverting r150565. Premature push. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
352aa4f67f968ca1a45f7cef0fd480b9c94f5bbe |
|
15-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move PostRAMachineLICM into MachineLateOptimization. It now runs after PEI! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
06efdd238ed7d14eaabc3b074c3b0b292c1c3127 |
|
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
comment grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
d5422654016b3ac7494db1d2ba16bd8febadb0a8 |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move TargetPassConfig implementation into Passes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
141f529bafb5f464ee5db7031d29c9b0b33085bc |
|
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
5aa3211e2d9c618f1f2ae590792067dbcb572741 |
|
30-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use a greedy algorithm for allocating registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
430721cff8bc3b5baceab7700bcb9b6a51d70327 |
|
19-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Force the greedy register allocator to be linked alongside linear scan. This means that the new register allocator can be used with 'clang -mllvm -regalloc=greedy'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
8b89c64b5ca469366b8cde5a242ac41c040bb1aa |
|
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the fast register allocator by default for -O0 builds. This affects both llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
18619b2aeba5468512d6684c4fd96d0ad280e01d |
|
18-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the way these options are printed. Requested by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
4a3f6c88820a204f80ca0fa3f1f2fe09ca10b02f |
|
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Make several variable declarations static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
00e533043d37e4a5b6783da7e3e29e8e6b240ad5 |
|
16-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
8653b37ab97ce69e8ff81e28f702ae94e20f6dec |
|
03-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Work around a bug in gcc 3.3.5, reported by a user git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
eb577ba3b815a1fa4627b060dd2345d17abf672d |
|
02-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Final polish on machine pass registries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
9ff542f2cce5bf7bf3cf9f692cf3ec0690ad2b3b |
|
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Change use of "Cache" to "Default". 2. Added argument to instruction scheduler creators so the creators can do special things. 3. Repaired target hazard code. 4. Misc. More to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
13ec702c430b91ee49b9e6d9581cd95412f216c8 |
|
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Introducing plugable register allocators and instruction schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
33a0a6ddf5427e05b1d9477075c6f6bf60aa7e62 |
|
27-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Working toward registration of register allocators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
ed41f1bb1981a98eea63f00c5988cf62bbdd7c59 |
|
20-Jul-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Reduce number of exported symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
8a6cd98e964fa42f05773cd2389e8b663ffecc6c |
|
24-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Alkis agrees that that iterative scan allocator isn't going to be worked on in the future, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
4951d48a16d46880e7dd57580d8dda7a27820778 |
|
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
The default has not been 'simple' for AGES! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
0bafa9818baafc969359a668245cff7d95268931 |
|
22-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Make linear scan the default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
77c4c4da24a7dc4906eed82a8f0944dee9e2367f |
|
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Put variable name to a separate line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
82c24fba8a096ade6875451894340a75fd3c27f4 |
|
22-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fit to 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
c8dec2c23e7b31e4f7a40d686d95513a442a0b6e |
|
21-Jul-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Linearscan is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
b8edf61fa9f558ccd68b4b5ac970e3d403d870ea |
|
16-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix IA64 compatibility git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
dd420e060accd1d773c731e77335cff65ca34013 |
|
02-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
aa4c91ff9669244b873cadd37e86fb7e19c5e82c |
|
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
finegrainify namespacification minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/Passes.cpp
|
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/lib/CodeGen/Passes.cpp
|