| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the AsmPrinter::GetMBBSymbol.
llvm-svn: 94515
|
|
|
|
| |
llvm-svn: 94032
|
|
|
|
|
|
|
| |
more cases where debug declarations affect
debug line info.
llvm-svn: 93953
|
|
|
|
|
|
|
| |
This fixes the regression for -pre-regalloc-taildup in
MultiSource/Applications/lambda-0.1.3.
llvm-svn: 93541
|
|
|
|
| |
llvm-svn: 92542
|
|
|
|
| |
llvm-svn: 91479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91161 into '.':
U lib/CodeGen/BranchFolding.cpp
U lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91113 into '.':
G lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91101 into '.':
U include/llvm/CodeGen/MachineBasicBlock.h
G lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91092 into '.':
G include/llvm/CodeGen/MachineBasicBlock.h
G lib/CodeGen/MachineBasicBlock.cpp
llvm-svn: 91376
|
|
|
|
| |
llvm-svn: 91274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
branches only to a landing pad. Without this check, the compiler would go into
an infinite loop because the branch to a landing pad is an "abnormal" edge which
wasn't being taken into account.
This is the meat of that fix:
if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {
The other stuff is simplification of the "branches to a landing pad" code.
llvm-svn: 91161
|
|
|
|
|
|
| |
build bots.
llvm-svn: 91113
|
|
|
|
|
|
|
|
| |
- Loosen the restrictions when checking of it branches to a landing pad.
- Make the loop more efficient by checking the '.insert' return value.
- Do cheaper checks first.
llvm-svn: 91101
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
more than one successor. Normally, these extra successors are dead. However,
some of them may branch to exception handling landing pads. If we remove those
successors, then the landing pads could go away if all predecessors to it are
removed. Before, it was checking if the direct successor was the landing
pad. But it could be the result of jumping through multiple basic blocks to get
to it. If we were to only check for the existence of an EH_LABEL in the basic
block and not remove successors if it's in there, then it could stop actually
dead basic blocks from being removed.
llvm-svn: 91092
|
|
|
|
| |
llvm-svn: 90633
|
|
|
|
|
|
| |
Patch by Howard Hinnant!
llvm-svn: 90365
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
TII->ReverseBranchCondition(Cond) call.
This fixes the MallocBench/cfrac test case regression.
llvm-svn: 89608
|
|
|
|
|
|
| |
Fix debug code that assumes getBasicBlock never returns NULL.
llvm-svn: 89428
|
|
|
|
| |
llvm-svn: 89130
|
|
|
|
|
|
| |
MachineBasicBlock so other passes can utilize it.
llvm-svn: 86947
|
|
|
|
|
|
|
|
|
|
|
| |
tail merging support to handle more cases.
- Recognize several cases where tail merging is beneficial even when
the tail size is smaller than the generic threshold.
- Make use of MachineInstrDesc::isBarrier to help detect
non-fallthrough blocks.
- Check for and avoid disrupting fall-through edges in more cases.
llvm-svn: 86871
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Be consistent when referring to MachineBasicBlocks: BB#0.
- Be consistent when referring to virtual registers: %reg1024.
- Be consistent when referring to unknown physical registers: %physreg10.
- Be consistent when referring to known physical registers: %RAX
- Be consistent when referring to register 0: %reg0
- Be consistent when printing alignments: align=16
- Print jump table contents.
- Don't print host addresses, in general.
- and various other cleanups.
llvm-svn: 85682
|
|
|
|
| |
llvm-svn: 85571
|
|
|
|
| |
llvm-svn: 85556
|
|
|
|
|
|
| |
upgrading a few things to use raw_ostream
llvm-svn: 79811
|
|
|
|
| |
llvm-svn: 79796
|
|
|
|
| |
llvm-svn: 79794
|
|
|
|
| |
llvm-svn: 79313
|
|
|
|
| |
llvm-svn: 79312
|
|
|
|
|
|
| |
be able to understand ;-)
llvm-svn: 79311
|
|
|
|
|
|
| |
and others.
llvm-svn: 78003
|
|
|
|
|
|
| |
LiveInterval, etc to raw_ostream.
llvm-svn: 76965
|
|
|
|
| |
llvm-svn: 76646
|
|
|
|
|
|
| |
MachineBasicBlock. We'll use these shortly.
llvm-svn: 76603
|
|
|
|
|
|
|
|
| |
allow it to have multiple CFG edges to that block. This is needed
to allow MachineBasicBlock::isOnlyReachableByFallthrough to work
correctly. This fixes PR4126.
llvm-svn: 71018
|
|
|
|
|
|
|
|
| |
entered via fall-through. Don't miss fallthroughs from blocks
terminated by conditional branches. Also, move
isOnlyReachableByFallthrough out of line.
llvm-svn: 68129
|
|
|
|
| |
llvm-svn: 68054
|
|
|
|
| |
llvm-svn: 61950
|
|
|
|
|
|
| |
isReg, etc., from isRegister, etc.
llvm-svn: 57006
|
|
|
|
|
|
|
| |
can be used when deciding if a block can transfer control to another
via a fall-through instead of a branch.
llvm-svn: 56968
|
|
|
|
|
|
|
|
|
| |
isImmediate(), isRegister(), and friends, to avoid confusion
about having two different names with the same meaning. I'm
not attached to the longer names, and would be ok with
changing to the shorter names if others prefer it.
llvm-svn: 56189
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.
Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.
Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.
llvm-svn: 54146
|
|
|
|
|
|
|
| |
Fix a leak that this turned up in LowerSubregs.cpp.
And, comment a leak in LiveIntervalAnalysis.cpp.
llvm-svn: 53746
|
|
|
|
|
|
|
|
|
|
|
| |
MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.
llvm-svn: 53212
|
|
|
|
| |
llvm-svn: 50663
|
|
|
|
|
|
|
|
| |
removed.
- Do not iterate over SmallPtrSet, the order of iteration is not deterministic.
llvm-svn: 50209
|
|
|
|
|
|
| |
16-byte boundaries.
llvm-svn: 47703
|
|
|
|
| |
llvm-svn: 47629
|
|
|
|
|
|
| |
would have been a Godsend here!
llvm-svn: 47625
|
|
|
|
| |
llvm-svn: 46930
|