| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
|
|
|
|
|
| |
sucessor info.
llvm-svn: 71478
|
|
|
|
|
|
|
|
| |
suprise to some callers, e.g. register coalescer. For now, add an parameter
that tells AnalyzeBranch whether it's safe to modify the mbb. A better
solution is out there, but I don't have time to deal with it right now.
llvm-svn: 64124
|
|
|
|
| |
llvm-svn: 63198
|
|
|
|
| |
llvm-svn: 61950
|
|
|
|
| |
llvm-svn: 60861
|
|
|
|
|
|
|
|
|
| |
is set but mayLoad is not set. Fix all the problems this turned up.
Change code to not use isSimpleLoad instead of mayLoad unless it
really wants isSimpleLoad.
llvm-svn: 60459
|
|
|
|
|
|
| |
150, based on llvm-test measurements.
llvm-svn: 58225
|
|
|
|
|
|
| |
isReg, etc., from isRegister, etc.
llvm-svn: 57006
|
|
|
|
| |
llvm-svn: 56469
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 55779
|
|
|
|
|
|
|
| |
handled correctly, and change a few SmallVector uses to use
size 0 to more clearly reflect their intent.
llvm-svn: 55181
|
|
|
|
|
|
| |
had to be propoagated down into all the targets and up into all clients of this API.
llvm-svn: 54802
|
|
|
|
|
|
|
|
| |
to be marked invalid regardless of whether it is
a debug, an exception handling or (hopefully) a
GC label.
llvm-svn: 54172
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
predessors of exit blocks from tail merging
consideration.
llvm-svn: 52985
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943
|
|
|
|
| |
llvm-svn: 52495
|
|
|
|
|
|
|
| |
elements that have been erased. Based on a patch
by Nicolas Capens.
llvm-svn: 51485
|
|
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
|
|
|
|
|
|
| |
if those blocks consist entirely of common instructions;
merging will not add an extra branch in this case.
llvm-svn: 51006
|
|
|
|
|
|
|
|
| |
semantically identical, but little difference in
either results or execution speed; but it's much
easier to read, at least IMO.
llvm-svn: 50999
|
|
|
|
|
|
| |
no functional change.
llvm-svn: 50921
|
|
|
|
|
|
|
|
| |
case where there are multiple blocks with a large
number of common tail instructions more efficiently
(compile time optimization).
llvm-svn: 50916
|
|
|
|
| |
llvm-svn: 50696
|
|
|
|
|
|
| |
can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away.
llvm-svn: 49461
|
|
|
|
|
|
| |
16-byte boundaries.
llvm-svn: 47703
|
|
|
|
|
|
| |
order to save a single instruction since a branch will be inserted for each BB.
llvm-svn: 47301
|
|
|
|
| |
llvm-svn: 46930
|
|
|
|
| |
llvm-svn: 46514
|
|
|
|
|
|
|
| |
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674
|
|
|
|
| |
llvm-svn: 45667
|
|
|
|
| |
llvm-svn: 45656
|
|
|
|
|
|
|
|
|
|
|
|
| |
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on
switching everything over, so new clients should just start using the
shorter names.
Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(),
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
llvm-svn: 45464
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
impact the value of fall-through choices.
llvm-svn: 44785
|
|
|
|
| |
llvm-svn: 43359
|
|
|
|
| |
llvm-svn: 43353
|
|
|
|
| |
llvm-svn: 43191
|
|
|
|
| |
llvm-svn: 40757
|
|
|
|
| |
llvm-svn: 38535
|
|
|
|
| |
llvm-svn: 38516
|
|
|
|
|
|
| |
_GLIBCXX_DEBUG.
llvm-svn: 37793
|
|
|
|
|
|
| |
method.
llvm-svn: 37633
|
|
|
|
| |
llvm-svn: 37511
|
|
|
|
|
|
| |
is too slow.
llvm-svn: 37509
|
|
|
|
| |
llvm-svn: 37427
|
|
|
|
|
|
| |
general facility.
llvm-svn: 37408
|