| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 105561
|
|
|
|
|
|
|
|
|
|
| |
checking whether AnalyzeBranch disagrees with the CFG
directly, rather than looking for EH_LABEL instructions.
EH_LABEL instructions aren't always at the end of the
block, due to FP_REG_KILL and other things. This fixes
an infinite loop compiling MultiSource/Benchmarks/Bullet.
llvm-svn: 96611
|
|
|
|
|
|
| |
different word was intended.
llvm-svn: 95795
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
|
|
|
|
|
| |
into TargetOpcodes.h. #include the new TargetOpcodes.h
into MachineInstr. Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the
codebase.
llvm-svn: 95687
|
|
|
|
| |
llvm-svn: 92157
|
|
|
|
|
|
| |
Patch by Howard Hinnant!
llvm-svn: 90365
|
|
|
|
|
|
| |
MachineBasicBlock so other passes can utilize it.
llvm-svn: 86947
|
|
|
|
|
|
|
|
|
| |
tracked. Instead of trying to manually keep track of these locations
while doing complex modifications, just recompute them when they're needed.
This fixes a bug in which the TopMBB and BotMBB were not correctly updated,
leading to invalid transformations.
llvm-svn: 84598
|
|
|
|
| |
llvm-svn: 84516
|
|
|
|
| |
llvm-svn: 84372
|
|
|
|
| |
llvm-svn: 84327
|
|
|
|
|
|
|
|
|
|
|
|
| |
to be more general and understand more varieties of loops.
Teach CodePlacementOpt to reorganize the basic blocks of a loop so that
they are contiguous. This also includes a fair amount of logic for preserving
fall-through edges while doing so. This fixes a BranchFolding-ism where blocks
which can't be made to use a fall-through edge and don't conveniently fit
anywhere nearby get tossed out to the end of the function.
llvm-svn: 84295
|
|
|
|
|
|
|
|
|
|
| |
header is just the entry block to the loop, and it needn't be at
the top of the loop in the code layout.
Remove the code that suppressed loop alignment for outer loops,
so that outer loops are aligned.
llvm-svn: 84158
|
|
|
|
| |
llvm-svn: 83437
|
|
|
|
|
|
| |
correctly indicates whether it changed the code.
llvm-svn: 72038
|
|
|
|
| |
llvm-svn: 71726
|
|
|
|
|
|
| |
don't want to add nops in the outer loop for the sake of aligning the inner loop.
llvm-svn: 71609
|
|
|
|
|
|
|
|
|
|
|
| |
after finding the (unique) layout predecessor. Sometimes a block may be listed
more than once, and processing it more than once in this loop can lead to
inconsistent values for FtTBB/FtFBB, since the AnalyzeBranch method does not
clear these values. There's no point in continuing the loop regardless.
The testcase for this is reduced from the 2003-05-02-DependentPHI SingleSource
test.
llvm-svn: 71536
|
|
|
|
| |
llvm-svn: 71363
|
|
|
|
| |
llvm-svn: 71291
|
|
|
|
| |
llvm-svn: 71242
|
|
|
|
| |
llvm-svn: 71214
|
|
|
|
| |
llvm-svn: 71211
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unconditional branch to the outside of the loop. e.g.
/// A:
/// ...
/// <fallthrough to B>
///
/// B: --> loop header
/// ...
/// jcc <cond> C, [exit]
///
/// C:
/// ...
/// jmp B
///
/// ==>
///
/// A:
/// ...
/// jmp B
///
/// C: --> new loop header
/// ...
/// <fallthough to B>
///
/// B:
/// ...
/// jcc <cond> C, [exit]
llvm-svn: 71209
|
|
|
|
| |
llvm-svn: 71151
|
|
llvm-svn: 71150
|