| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
SelectionDAG do those. This fixes PR3955.
llvm-svn: 68546
|
| |
|
|
|
|
|
|
| |
ptrtoint and inttoptr in X86FastISel. These casts aren't always
handled in the generic FastISel code because X86 sometimes needs
custom code to do truncation and zero-extension.
llvm-svn: 66988
|
| |
|
|
|
|
|
|
|
| |
by inserting explicit zero extensions where necessary. Included
is a testcase where SelectionDAG produces a virtual register
holding an i1 value which FastISel previously mistakenly assumed
to be zero-extended.
llvm-svn: 66941
|
| |
|
|
| |
llvm-svn: 66867
|
| |
|
|
| |
llvm-svn: 66866
|
| |
|
|
|
|
| |
on the number of times a std::string is created and copied.
llvm-svn: 66396
|
| |
|
|
|
|
|
|
| |
getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior.
This is a very minor compile time win.
llvm-svn: 65438
|
| |
|
|
|
|
|
|
|
|
|
|
| |
them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379
|
| |
|
|
|
|
|
|
|
|
| |
a DBG_LABEL or not. We want to fall back to the original way of emitting debug
info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
need to investigate still.
llvm-svn: 65367
|
| |
|
|
| |
llvm-svn: 64428
|
| |
|
|
|
|
|
| |
the new way, where all of the information is passed on SDNodes and machine
instructions.
llvm-svn: 64427
|
| |
|
|
| |
llvm-svn: 64379
|
| |
|
|
|
|
|
| |
created. Specifically, those BuildMIs which use
"DebugLoc::getUnknownLoc()". I'll remove them soon.
llvm-svn: 63584
|
| |
|
|
|
|
| |
SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
llvm-svn: 62762
|
| |
|
|
| |
llvm-svn: 62545
|
| |
|
|
| |
llvm-svn: 62286
|
| |
|
|
| |
llvm-svn: 62127
|
| |
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
| |
|
|
|
|
|
|
|
| |
and use it in x86 address mode folding. Also, make
getRegForValue return 0 for illegal types even if it has a
ValueMap for them, because Argument values are put in the
ValueMap. This fixes PR3181.
llvm-svn: 60696
|
| |
|
|
| |
llvm-svn: 59952
|
| |
|
|
| |
llvm-svn: 58814
|
| |
|
|
|
|
|
|
|
| |
- Move the EH landing-pad code and adjust it so that it works
with FastISel as well as with SDISel.
- Add FastISel support for @llvm.eh.exception and
@llvm.eh.selector.
llvm-svn: 57539
|
| |
|
|
| |
llvm-svn: 57428
|
| |
|
|
|
|
|
| |
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
llvm-svn: 57329
|
| |
|
|
|
|
|
| |
for things like null pointers, which at this level aren't
different from regular integer constants.
llvm-svn: 57265
|
| |
|
|
|
|
|
| |
It turns out that this is a fairly common operation,
and it's easy enough to handle.
llvm-svn: 56990
|
| |
|
|
|
|
|
|
|
|
|
| |
sequences like this:
sete %al
testb %al, %al
jne LBB11_1
with this:
je LBB11_1
llvm-svn: 56969
|
| |
|
|
|
|
| |
they'll be a little more visible. Also, update and reword them a bit.
llvm-svn: 56877
|
| |
|
|
|
|
| |
i1 operands are assumed to already by zero-extended.
llvm-svn: 56615
|
| |
|
|
| |
llvm-svn: 56610
|
| |
|
|
|
|
| |
giving the target a chance to materialize constants.
llvm-svn: 56605
|
| |
|
|
|
|
| |
object. This will be needed to support debug info.
llvm-svn: 56508
|
| |
|
|
|
|
|
| |
results in better code for globals. Also, unbreak the local CSE for
GlobalValue stub loads.
llvm-svn: 56371
|
| |
|
|
| |
llvm-svn: 56068
|
| |
|
|
|
|
|
| |
to static allocas. As part of this change, refactor the
address mode code for laods and stores.
llvm-svn: 56066
|
| |
|
|
| |
llvm-svn: 56009
|
| |
|
|
|
|
|
|
| |
With this change,
all of MultiSource/Applications passes on Darwin/X86 under FastISel.
llvm-svn: 55982
|
| |
|
|
|
|
| |
funky getelementptr embedded in the address operand.
llvm-svn: 55975
|
| |
|
|
| |
llvm-svn: 55892
|
| |
|
|
| |
llvm-svn: 55880
|
| |
|
|
|
|
| |
commit.
llvm-svn: 55865
|
| |
|
|
| |
llvm-svn: 55846
|
| |
|
|
| |
llvm-svn: 55843
|
| |
|
|
| |
llvm-svn: 55818
|
| |
|
|
|
|
|
|
| |
constant
pool loads on X86 in fast isel. This isn't actually used yet.
llvm-svn: 55814
|
| |
|
|
|
|
| |
in FastISel.
llvm-svn: 55748
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
HandlePHINodesInSuccessorBlocks that works FastISel-style. This
allows PHI nodes to be updated correctly while using FastISel.
This also involves some code reorganization; ValueMap and
MBBMap are now members of the FastISel class, so they needn't
be passed around explicitly anymore. Also, SelectInstructions
is changed to SelectInstruction, and only does one instruction
at a time.
llvm-svn: 55746
|
| |
|
|
| |
llvm-svn: 55704
|
| |
|
|
|
|
|
|
|
| |
not dominated by the materialization. This is
the simple fix, materializing the constant before every use. It might be better to either track domination of uses or
to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses.
llvm-svn: 55703
|
| |
|
|
| |
llvm-svn: 55668
|