| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
respect the pre-chosen vreg
assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen
vreg. Other solutions might be preferable, such as:
1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently.
2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact.
llvm-svn: 55555
|
|
|
|
| |
llvm-svn: 55500
|
|
|
|
|
|
| |
support for EXTRACT_SUBREG.
llvm-svn: 55482
|
|
|
|
|
|
| |
can get it from MachineRegisterInfo instead.
llvm-svn: 55476
|
|
|
|
|
|
| |
selecting trunc's in fast-isel.
llvm-svn: 55439
|