| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 53289
|
| |
|
|
|
|
|
|
|
| |
SINT_TO_FP and UINT_TO_FP. This now produces
the same code as LegalizeDAG (the previous
code was based on a mistaken idea of what
LegalizeDAG did in this case).
llvm-svn: 53288
|
| |
|
|
|
|
| |
loads.
llvm-svn: 53287
|
| |
|
|
|
|
| |
FP_TO_UINT.
llvm-svn: 53286
|
| |
|
|
| |
llvm-svn: 53285
|
| |
|
|
|
|
| |
note since it is not clear whether it is correct.
llvm-svn: 53284
|
| |
|
|
| |
llvm-svn: 53281
|
| |
|
|
|
|
| |
functions and junk.
llvm-svn: 53279
|
| |
|
|
| |
llvm-svn: 53264
|
| |
|
|
|
|
| |
parent is non-null. It now always is.
llvm-svn: 53263
|
| |
|
|
| |
llvm-svn: 53262
|
| |
|
|
|
|
|
| |
available to getAtomic in addition to just getLoad and getStore,
to prevent MachineMemOperands with 0 alignment.
llvm-svn: 53261
|
| |
|
|
|
|
| |
to MachineBasicBlock::iterator.
llvm-svn: 53260
|
| |
|
|
|
|
|
|
|
| |
information for itself
rather than depending on LiveVariables. This decreases compile time from:
0.5909s (LV + Regalloc) to 0.421s (just regalloc).
llvm-svn: 53256
|
| |
|
|
| |
llvm-svn: 53253
|
| |
|
|
|
|
| |
SDNode's. This improves compile time slightly at -O0 -g.
llvm-svn: 53246
|
| |
|
|
|
|
|
|
|
| |
soft float: experiments show that targets aren't
expecting this for results or for operands. Add
support select/select_cc result soft float and
correct operand soft float for these.
llvm-svn: 53245
|
| |
|
|
|
|
| |
in LegalizeTypes.
llvm-svn: 53244
|
| |
|
|
| |
llvm-svn: 53237
|
| |
|
|
|
|
| |
soft float.
llvm-svn: 53231
|
| |
|
|
| |
llvm-svn: 53215
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
and reused across SelectionDAGs.
This drastically reduces the number of calls to malloc/free made during
instruction selection, and improves memory locality.
llvm-svn: 53211
|
| |
|
|
| |
llvm-svn: 53206
|
| |
|
|
| |
llvm-svn: 53202
|
| |
|
|
|
|
|
| |
properly track dead nodes that are on the original SDNode's operand
list but not the new one, and have no other uses.
llvm-svn: 53201
|
| |
|
|
|
|
| |
#include dependency on Support/MathExtras.h in the header file.
llvm-svn: 53200
|
| |
|
|
| |
llvm-svn: 53197
|
| |
|
|
| |
llvm-svn: 53196
|
| |
|
|
|
|
| |
their cleanup code.
llvm-svn: 53194
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
simple const SDOperand*, which is what's usually needed.
For AddNodeIDOperands, which is small, just duplicate the function to
accept an SDUse*.
For SelectionDAG::getNode - Add an overload that accepts SDUse* that
copies the operands into a temporary SDOperand array, but also has
special-case checks for 0 through 3 operands to avoid the copy in
the common cases.
llvm-svn: 53183
|
| |
|
|
| |
llvm-svn: 53179
|
| |
|
|
| |
llvm-svn: 53177
|
| |
|
|
|
|
| |
Richard Osborne.
llvm-svn: 53169
|
| |
|
|
| |
llvm-svn: 53166
|
| |
|
|
|
|
| |
float value.
llvm-svn: 53165
|
| |
|
|
|
|
|
|
| |
that fixed problems in EmitStackConvert where the source and target type
have different alignment by creating a stack slot with the max
alignment of source and target type.
llvm-svn: 53150
|
| |
|
|
|
|
|
|
|
|
|
|
| |
hook for each way in which a result type can be
legalized (promotion, expansion, softening etc),
just use one: ReplaceNodeResults, which returns
a node with exactly the same result types as the
node passed to it, but presumably with a bunch of
custom code behind the scenes. No change if the
new LegalizeTypes infrastructure is not turned on.
llvm-svn: 53137
|
| |
|
|
|
|
|
|
|
| |
moves in order to get correct debug info. Since
I can't imagine how any target could possibly
be any different, I've just stripped out the
option: now all the world's like Darwin!
llvm-svn: 53134
|
| |
|
|
| |
llvm-svn: 53123
|
| |
|
|
|
|
| |
slow the compiler down at -O0 some 30% or more. Ooops.
llvm-svn: 53120
|
| |
|
|
| |
llvm-svn: 53110
|
| |
|
|
|
|
|
|
| |
propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
llvm-svn: 53097
|
| |
|
|
|
|
| |
254.gap failure was not due to this mod.
llvm-svn: 53068
|
| |
|
|
| |
llvm-svn: 53065
|
| |
|
|
| |
llvm-svn: 53063
|
| |
|
|
|
|
|
|
| |
instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers.
- CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead.
llvm-svn: 53061
|
| |
|
|
|
|
|
|
| |
TargetInstrInfo::convertToThreeAddressInstruction
Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place.
llvm-svn: 53058
|
| |
|
|
|
|
|
|
|
|
|
|
| |
SelectionDAG::SelectNodeTo in the instruction selector. This
updates existing nodes in place instead of creating new ones.
Go back to selecting ISD::DBG_LABEL nodes into
TargetInstrInfo::DBG_LABEL nodes instead of leaving them
unselected, now that SelectNodeTo allows us to update them
in place.
llvm-svn: 53057
|
| |
|
|
| |
llvm-svn: 53050
|