| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
the -pre-regalloc-taildup command-line option, and add a new
-disable-early-taildup option.
llvm-svn: 93597
|
|
|
|
|
|
|
|
|
| |
Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer
Further refactoring to completely remove MachOWriter and drive the object file
writer with the AsmPrinter MCInst/MCSection logic is forthcoming.
llvm-svn: 93527
|
|
|
|
| |
llvm-svn: 93459
|
|
|
|
|
|
|
|
|
| |
catch info can get misplaced when a selector ends up more than one block
removed from the parent invoke(s). This could happen when a landing pad is
shared by multiple invokes and is also a target of a normal edge from
elsewhere.
llvm-svn: 93456
|
|
|
|
| |
llvm-svn: 93313
|
|
|
|
| |
llvm-svn: 93286
|
|
|
|
| |
llvm-svn: 93285
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 93278
|
|
|
|
| |
llvm-svn: 92874
|
|
|
|
| |
llvm-svn: 92524
|
|
|
|
|
|
|
|
|
|
| |
by allowing backends to override routines that will default
the JIT and Static code generation to an appropriate code model
for the architecture.
Should fix PR 5773.
llvm-svn: 91824
|
|
|
|
| |
llvm-svn: 91604
|
|
|
|
|
|
| |
introduced a non-deterministic behavior in the optimizer somewhere.
llvm-svn: 91598
|
|
|
|
| |
llvm-svn: 90567
|
|
|
|
| |
llvm-svn: 89968
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 89904
|
|
|
|
| |
llvm-svn: 89790
|
|
|
|
|
|
| |
just before codegen.
llvm-svn: 89439
|
|
|
|
|
|
| |
before pre-emit passes.
llvm-svn: 86092
|
|
|
|
| |
llvm-svn: 86044
|
|
|
|
|
|
|
|
| |
previously running CodePlacementOpt. Also print headers before
each dump in -print-machineinstrs mode, so that it's clear which
dump is which.
llvm-svn: 85681
|
|
|
|
|
|
| |
to unfold loop-invariant loads.
llvm-svn: 85657
|
|
|
|
| |
llvm-svn: 85460
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r85338 into '.':
U lib/CodeGen/SimpleRegisterCoalescing.cpp
U lib/CodeGen/SimpleRegisterCoalescing.h
llvm-svn: 85454
|
|
|
|
|
|
| |
I'm going to redo this using the OptimizeForSize function attribute.
llvm-svn: 85426
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 85346
|
|
|
|
| |
llvm-svn: 84273
|
|
|
|
| |
llvm-svn: 83144
|
|
|
|
|
|
| |
post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8.
llvm-svn: 83122
|
|
|
|
| |
llvm-svn: 82803
|
|
|
|
|
|
|
|
|
|
|
| |
constants out of loops. These aren't covered by the regular LICM
pass, because in LLVM IR constants don't require separate
instructions. They're not always covered by the MachineLICM pass
either, because it doesn't know how to unfold folded constant-pool
loads. This is somewhat experimental at this point, and off by
default.
llvm-svn: 82076
|
|
|
|
| |
llvm-svn: 80104
|
|
|
|
|
|
| |
upgrading a few things to use raw_ostream
llvm-svn: 79811
|
|
|
|
| |
llvm-svn: 79763
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 79250
|
|
|
|
| |
llvm-svn: 79095
|
|
|
|
|
|
| |
AsmPrinter instance (instead of just a FunctionPass)
llvm-svn: 78962
|
|
|
|
|
|
|
|
|
| |
TargetAsmInfo. This eliminates a dependency on TargetMachine.h from
TargetRegistry.h, which technically was a layering violation.
- Clients probably can only sensibly pass in the same TargetAsmInfo as the
TargetMachine has, but there are only limited clients of this API.
llvm-svn: 78928
|
|
|
|
|
|
|
|
| |
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.
llvm-svn: 78802
|
|
|
|
| |
llvm-svn: 78677
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and short. Well, it's kinda short. Definitely nasty and brutish.
The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.
Built on Darwin and verified no llvm-core "make check" regressions.
llvm-svn: 78625
|
|
|
|
| |
llvm-svn: 78179
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 77691
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 77661
|
|
|
|
|
|
|
| |
mechanism. To support this, make MachineFunctionPass a little more
complete.
llvm-svn: 77654
|
|
|
|
|
|
| |
(although we don't get a very good error message).
llvm-svn: 75864
|
|
|
|
| |
llvm-svn: 75862
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 75859
|
|
|
|
|
|
| |
- No intended functionality change.
llvm-svn: 75848
|
|
|
|
|
|
| |
dynamic_cast<>.
llvm-svn: 75670
|