| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
possible. This goes into instcombine and instsimplify because instsimplify
doesn't need to check hasOneUse since it returns (almost exclusively) constants.
This fixes PR9343 #4 #5 and #8!
llvm-svn: 127064
|
| |
|
|
|
|
| |
true/false or "icmp slt/sge Y, 0".
llvm-svn: 127063
|
| |
|
|
|
|
|
| |
The global cost is the sum of block frequencies for spill code that must be
inserted because preferences weren't met.
llvm-svn: 127062
|
| |
|
|
|
|
|
|
|
|
|
| |
pattern.
This simplifies the code and makes it faster too.
The interference patterns are saved for each candidate register. It will be
reused for actually executing the split. Work in progress.
llvm-svn: 127054
|
| |
|
|
|
|
| |
free register.
llvm-svn: 127049
|
| |
|
|
|
|
|
|
| |
Patch by Johannes Schaub!
Fixes PR8548
llvm-svn: 127047
|
| |
|
|
| |
llvm-svn: 127043
|
| |
|
|
| |
llvm-svn: 127040
|
| |
|
|
| |
llvm-svn: 127038
|
| |
|
|
|
|
|
| |
It gives better results. Sometimes, a live range can be large and still have
high spill weight. Such a range should not be spilled.
llvm-svn: 127036
|
| |
|
|
| |
llvm-svn: 127034
|
| |
|
|
|
|
| |
16-bit field. Patch by Akira Hatanaka
llvm-svn: 127032
|
| |
|
|
|
|
|
| |
bitcasts, which are really no-ops here. This fixes slowdowns on
MultiSource/Applications/aha and others.
llvm-svn: 127031
|
| |
|
|
|
|
| |
Stankovic
llvm-svn: 127029
|
| |
|
|
|
|
| |
that contain only letters, digits and the characters "_" and ".".
llvm-svn: 127028
|
| |
|
|
|
|
| |
Patch by Akira Hatanaka
llvm-svn: 127027
|
| |
|
|
|
|
|
|
|
|
| |
inefficient file system buffering if the writes are not a multiple of the desired
buffer size. Avoid this by limiting the large write to a multiple of the buffer
size and copying the remainder into the buffer.
Thanks to Dan for pointing this out.
llvm-svn: 127026
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Initially, slot indexes are quad-spaced. There is room for inserting up to 3
new instructions between the original instructions.
When we run out of indexes between two instructions, renumber locally using
double-spaced indexes. The original quad-spacing means that we catch up quickly,
and we only have to renumber a handful of instructions to get a monotonic
sequence. This is much faster than renumbering the whole function as we did
before.
llvm-svn: 127023
|
| |
|
|
| |
llvm-svn: 127021
|
| |
|
|
| |
llvm-svn: 127020
|
| |
|
|
|
|
| |
individual variable's info from merged global.
llvm-svn: 127019
|
| |
|
|
| |
llvm-svn: 127017
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instruction.
You can't really predict how many indexes will be needed from the number of
defs, so let's keep it simple.
Also remove an extra empty index that was inserted after each basic block. It
was intended for live-out ranges, but it was never used that way.
llvm-svn: 127014
|
| |
|
|
|
|
|
|
| |
directly instead of doing many buffer-sized writes.
This caps the number of write(2) calls per string to a maximum of 2.
llvm-svn: 127010
|
| |
|
|
| |
llvm-svn: 127007
|
| |
|
|
| |
llvm-svn: 127006
|
| |
|
|
|
|
| |
by Akira Hatanaka
llvm-svn: 127005
|
| |
|
|
|
|
| |
Hatanaka, Akira
llvm-svn: 127003
|
| |
|
|
|
|
|
|
|
|
|
| |
correct
type after type legalization has completed. Before then it may simply not be big
enough to hold the shift amount, particularly on x86 which uses a very small type
for shifts (this issue broke stuff in the past which is why LegalizeTypes carefully
uses a large type for shift amounts).
llvm-svn: 127000
|
| |
|
|
|
|
|
|
|
| |
There was a previous implementation with patterns that would
have matched e.g.
shl <v4i32> <i32>,
but this is not valid LLVM IR so they never were selected.
llvm-svn: 126998
|
| |
|
|
|
|
| |
A 'load <4 x i32>* null' crashes llc before this fix.
llvm-svn: 126995
|
| |
|
|
|
|
|
| |
in the urem case, though not the other way around. This is enough to get #3 from
PR9343!
llvm-svn: 126991
|
| |
|
|
|
|
|
|
|
| |
"icmp pred %X, CI" and a number of examples where "%X = binop %Y, CI2".
Some of these cases (div and rem) used to make it through opt -O2, but the
others are probably now making code elsewhere redundant (probably instcombine).
llvm-svn: 126988
|
| |
|
|
|
|
|
| |
Avoid colliding with the sentinels, hopefully unbreaking
llvm-gcc-x86_64-linux-selfhost.
llvm-svn: 126982
|
| |
|
|
|
|
|
|
| |
Fix the PendingQueue, then disable it because it's not required for
the current schedulers' heuristics.
Fix the logic for the unused list-ilp scheduler.
llvm-svn: 126981
|
| |
|
|
| |
llvm-svn: 126978
|
| |
|
|
| |
llvm-svn: 126975
|
| |
|
|
|
|
|
| |
This speeds up updateSSA() so it only accounts for 5% of the live range
splitting time.
llvm-svn: 126972
|
| |
|
|
| |
llvm-svn: 126970
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
it. It's been assumed up til now that it would be in its immediate
successor. However, this isn't necessarily the case. It could be in one of its
successor's successors.
Modify the code to more thoroughly check for an 'eh.selector' call in
successors. It only looks at a successor if we get there as a result of an
unconditional branch.
Testcase ObjC/exceptions-4.m in r126968.
llvm-svn: 126969
|
| |
|
|
|
|
| |
Patch by Zonr Chang!
llvm-svn: 126967
|
| |
|
|
| |
llvm-svn: 126964
|
| |
|
|
| |
llvm-svn: 126963
|
| |
|
|
| |
llvm-svn: 126962
|
| |
|
|
|
|
| |
Add comment.
llvm-svn: 126959
|
| |
|
|
|
|
| |
does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function.
llvm-svn: 126957
|
| |
|
|
|
|
| |
be next to the frame pointer or the stack pointer.
llvm-svn: 126956
|
| |
|
|
|
|
| |
other components can use them.
llvm-svn: 126942
|
| |
|
|
| |
llvm-svn: 126941
|
| |
|
|
|
|
| |
and siprintf is available on the target.
llvm-svn: 126940
|