| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 54186
|
|
|
|
|
|
|
|
| |
are inputs to two-address instructions
that themselves define a range we already care about.
llvm-svn: 54185
|
|
|
|
|
|
|
|
|
|
|
|
| |
SGT exit condition. Essentially, the correct way to flip an inequality
in 2's complement is the not operator, not the negation operator.
That said, the difference only affects cases involving INT_MIN.
Also, enhance the pre-test search logic to be a bit smarter about
inequalities flipped with a not operator, so it can eliminate the smax
from the iteration count for simple loops.
llvm-svn: 54184
|
|
|
|
|
|
|
|
| |
need to merge over all liveranges in
the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI.
llvm-svn: 54174
|
|
|
|
| |
llvm-svn: 54173
|
|
|
|
|
|
|
|
| |
to be marked invalid regardless of whether it is
a debug, an exception handling or (hopefully) a
GC label.
llvm-svn: 54172
|
|
|
|
| |
llvm-svn: 54169
|
|
|
|
| |
llvm-svn: 54168
|
|
|
|
| |
llvm-svn: 54167
|
|
|
|
|
|
|
| |
The CellSPU codegen is broken, but needs to be fixed before we can
put this back in.
llvm-svn: 54164
|
|
|
|
|
|
| |
CodeGen & Clang work coming next.
llvm-svn: 54161
|
|
|
|
|
|
|
|
| |
partially unroll a loop when fully unrolling would not fit under the threshold.
Patch by Mikael Lepistö.
llvm-svn: 54160
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that says "unconditional loads from this argument are safe", we now keep track
of the safety per set of indices from which loads happen. This prevents
ArgPromotion from promoting loads that aren't really valid. As an added effect,
this will now disregard the the type of the indices passed to a GEP, so
"load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument,
not two.
This fixes PR2598, for which a testcase has been added as well.
llvm-svn: 54159
|
|
|
|
|
|
| |
just Value*'s.
llvm-svn: 54157
|
|
|
|
|
|
| |
FreeRangeHeader::getMinBlockSize(). Patch by Damien.
llvm-svn: 54152
|
|
|
|
| |
llvm-svn: 54148
|
|
|
|
|
|
|
|
| |
which is represented in codegen as an 'and' operation. This matches them
with movz instructions, instead of leaving them to be matched by and
instructions with an immediate field.
llvm-svn: 54147
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 54144
|
|
|
|
| |
llvm-svn: 54142
|
|
|
|
|
|
| |
of operands should be -1 not 0.
llvm-svn: 54141
|
|
|
|
|
|
|
| |
Fixed COMM asm directive usage.
ConstantPool using custom FourByteConstantSection.
llvm-svn: 54139
|
|
|
|
| |
llvm-svn: 54136
|
|
|
|
|
|
|
|
| |
loaded.
This fixes PR2599.
llvm-svn: 54133
|
|
|
|
|
|
|
|
| |
circumstances we could end up remapping a dependee to the same instruction
that we're trying to remove. Handle this properly by just falling back to
a conservative solution.
llvm-svn: 54132
|
|
|
|
| |
llvm-svn: 54131
|
|
|
|
|
|
| |
the SelectionDAG's.
llvm-svn: 54129
|
|
|
|
| |
llvm-svn: 54128
|
|
|
|
|
|
|
| |
parallel its analogue, Value::value_use_iterator. The operator* method
now returns the user, rather than the use.
llvm-svn: 54127
|
|
|
|
| |
llvm-svn: 54124
|
|
|
|
|
|
|
| |
unary operations! Add support for softening
some additional unary operations like fp_to_sint.
llvm-svn: 54122
|
|
|
|
|
|
|
|
|
|
| |
more, I realized that the right thing to do
is to have StrongPHIElimination use its knowledge of the PHIs before they're erased to update the intervals appropriate. This is
both simpler and more accurate than the alternative, which was having LIA figure it out when it renumbered things, plus it's just
the right thing to do!
llvm-svn: 54077
|
|
|
|
|
|
| |
to fix this problem.
llvm-svn: 54072
|
|
|
|
|
|
|
|
|
| |
a PHI has been removed. The interval previously defined
by the PHI needs to be extended to the beginning of its basic block, and the intervals that were inputs need to be trimmed to the end
of their basic blocks.
llvm-svn: 54070
|
|
|
|
|
|
| |
to the handled set so it will get filtered out in future iterations.
llvm-svn: 54065
|
|
|
|
| |
llvm-svn: 54062
|
|
|
|
| |
llvm-svn: 54061
|
|
|
|
|
|
|
|
|
| |
robust.
This is tricky business, and will probably take a few more iterations to get
the last kinks out of it.
llvm-svn: 54043
|
|
|
|
|
|
|
|
| |
mmx needs its own fancy shuffle logic based on unpack; for now we get correct but awful code.
Also commit Mon Ping's VSETCC patch
llvm-svn: 54039
|
|
|
|
| |
llvm-svn: 54031
|
|
|
|
| |
llvm-svn: 54030
|
|
|
|
| |
llvm-svn: 54029
|
|
|
|
| |
llvm-svn: 54028
|
|
|
|
|
|
| |
to be fixed.
llvm-svn: 54026
|
|
|
|
| |
llvm-svn: 54025
|
|
|
|
|
|
|
| |
regressions, such as PR2595. Also, there is a significant code-quality
issue in SPEC 464.h264ref and a few others.
llvm-svn: 54014
|
|
|
|
| |
llvm-svn: 54007
|
|
|
|
|
|
| |
This fixes pr2589.
llvm-svn: 54004
|
|
|
|
|
|
|
| |
dependencies with constant load nodes. This allows them to be scheduled
freely.
llvm-svn: 54001
|
|
|
|
|
|
|
|
|
|
| |
AliasAnalysis::pointsToConstantMemory,
and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow
constants to be rematerialized in PIC mode -- the extra indirection is a
complication.
llvm-svn: 54000
|