| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 93463
|
| |
|
|
| |
llvm-svn: 93459
|
| |
|
|
|
|
|
|
|
| |
catch info can get misplaced when a selector ends up more than one block
removed from the parent invoke(s). This could happen when a landing pad is
shared by multiple invokes and is also a target of a normal edge from
elsewhere.
llvm-svn: 93456
|
| |
|
|
| |
llvm-svn: 93417
|
| |
|
|
|
|
|
|
| |
code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them.
This fixes PR6027.
llvm-svn: 93335
|
| |
|
|
| |
llvm-svn: 93313
|
| |
|
|
| |
llvm-svn: 93306
|
| |
|
|
|
|
|
|
|
| |
different BlockAddress labels, but nothing semantically important.
Add a FIXME that BlockAddress codegen is broken if the LLVM BB has
an empty name (e.g. strip was run).
llvm-svn: 93303
|
| |
|
|
|
|
|
|
|
| |
Among other things, this would do very weird things if the
basic block name had (e.g.) a space in it on darwin:
makeNameProper would add quotes, then the mcsymbol would
escape the quotes.
llvm-svn: 93302
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instead of returning it in an std::string. Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.
llvm-svn: 93298
|
| |
|
|
| |
llvm-svn: 93293
|
| |
|
|
| |
llvm-svn: 93292
|
| |
|
|
|
|
| |
integers on 64-bit systems.
llvm-svn: 93291
|
| |
|
|
| |
llvm-svn: 93290
|
| |
|
|
| |
llvm-svn: 93286
|
| |
|
|
| |
llvm-svn: 93285
|
| |
|
|
| |
llvm-svn: 93283
|
| |
|
|
|
|
|
|
| |
where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg.
For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used.
llvm-svn: 93278
|
| |
|
|
|
|
|
| |
dumper doesn't really do what I want yet, but
at least it doesn't crash now.
llvm-svn: 93272
|
| |
|
|
| |
llvm-svn: 93261
|
| |
|
|
| |
llvm-svn: 93228
|
| |
|
|
| |
llvm-svn: 93227
|
| |
|
|
|
|
|
|
| |
BRCOND was constant folded.
This fixes PR5980.
llvm-svn: 93184
|
| |
|
|
|
|
|
|
| |
then a load if the
loads are not in the default address space because the transformation discards src value info.
llvm-svn: 93180
|
| |
|
|
| |
llvm-svn: 93165
|
| |
|
|
|
|
|
|
|
|
| |
really does need to be a vector type, because
TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type,
and it needs to be able to distinguish between vectors and scalars.
Also, fix some more issues with legalization of vector casts.
llvm-svn: 93043
|
| |
|
|
|
|
| |
ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead.
llvm-svn: 93031
|
| |
|
|
|
|
| |
replaced. Do not delete dead nodes again.
llvm-svn: 92988
|
| |
|
|
|
|
|
|
|
|
| |
When folding a and(any_ext(load)) both the any_ext and the
load have to have only a single use.
This removes the anyext-uses.ll testcase which started failing
because it is unreduced and unclear what it is testing.
llvm-svn: 92950
|
| |
|
|
|
|
| |
time, no functionality change.
llvm-svn: 92948
|
| |
|
|
| |
llvm-svn: 92943
|
| |
|
|
| |
llvm-svn: 92938
|
| |
|
|
| |
llvm-svn: 92920
|
| |
|
|
| |
llvm-svn: 92919
|
| |
|
|
| |
llvm-svn: 92918
|
| |
|
|
| |
llvm-svn: 92874
|
| |
|
|
|
|
|
| |
Some instructions refer to unique labels, and so cannot be trivially cloned
with CloneMachineInstr.
llvm-svn: 92873
|
| |
|
|
|
|
| |
multiple register definitions.
llvm-svn: 92864
|
| |
|
|
| |
llvm-svn: 92850
|
| |
|
|
|
|
|
|
|
|
| |
(OP (trunc x), (trunc y)) -> (trunc (OP x, y))
Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel.
This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places.
llvm-svn: 92849
|
| |
|
|
| |
llvm-svn: 92837
|
| |
|
|
| |
llvm-svn: 92830
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
defs and kills.
An instruction like this:
%reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0
Must be replaced with this when substituting physical registers:
%S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def>
llvm-svn: 92812
|
| |
|
|
|
|
| |
order.
llvm-svn: 92810
|
| |
|
|
| |
llvm-svn: 92807
|
| |
|
|
|
|
| |
bottom-up scheduler. We prefer the lower order number.
llvm-svn: 92806
|
| |
|
|
|
|
| |
result in illegal types for the SHL operator.
llvm-svn: 92797
|
| |
|
|
|
|
|
| |
uses several kinds of opcode values which are not declared within
that enum. This fixes PR5946.
llvm-svn: 92794
|
| |
|
|
| |
llvm-svn: 92772
|
| |
|
|
| |
llvm-svn: 92771
|