| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 115650
|
|
|
|
| |
llvm-svn: 115649
|
|
|
|
|
|
|
|
|
| |
of hardware signed integer conversion without
having to do a double cast (uint64_t --> double --> float). This is based on the algorithm from compiler_rt's __floatundisf
for X86-64.
llvm-svn: 115634
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
// %a = ...
// %b = and i32 %a, 2
// %c = srl i32 %b, 1
// brcond i32 %c ...
//
// into
//
// %a = ...
// %b = and i32 %a, 2
// %c = setcc eq %b, 0
// brcond %c ...
Make sure it restores local variable N1, which corresponds to the condition operand if it fails to match.
This apparently breaks TCE but since that backend isn't in the tree I don't have a test for it.
llvm-svn: 115571
|
|
|
|
|
|
| |
PBQP allocator. Problem construction is now done exclusively with the new builders.
llvm-svn: 115502
|
|
|
|
| |
llvm-svn: 115408
|
|
|
|
|
|
|
|
|
|
|
| |
scheduling change in svn 115121. The CriticalAntiDepBreaker had bad
liveness information. It was calculating the KillIndices for one scheduling
region in a basic block, rescheduling that region so the KillIndices were
no longer valid, and then using those wrong KillIndices to make decisions
for the next scheduling region. I've not been able to reduce a small
testcase for this. Radar 8502534.
llvm-svn: 115400
|
|
|
|
|
|
| |
RemoveCopyByCommutingDef.
llvm-svn: 115386
|
|
|
|
|
|
|
|
|
|
|
| |
LiveInterval::MergeValueNumberInto instead of trying to extend LiveRanges and
getting it wrong.
This fixed PR8249 where a valno with a multi-segment live range was defined by
an identity copy created by RemoveCopyByCommutingDef. Some of the live
segments disappeared.
llvm-svn: 115385
|
|
|
|
| |
llvm-svn: 115384
|
|
|
|
| |
llvm-svn: 115378
|
|
|
|
| |
llvm-svn: 115377
|
|
|
|
|
|
|
|
|
| |
if-conversion heuristic APIs. For now,
stick with a constant estimate of 90% (branch predictors are good!), but we might find that we want to provide
more nuanced estimates in the future.
llvm-svn: 115364
|
|
|
|
|
|
| |
unused argument here. This is a known limitation recorded debuginfo-tests/trunk/dbg-declare2.ll function 'f6' test case.
llvm-svn: 115323
|
|
|
|
| |
llvm-svn: 115310
|
|
|
|
| |
llvm-svn: 115300
|
|
|
|
| |
llvm-svn: 115294
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.
Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics.
MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces. Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.
The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.
llvm-svn: 115243
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
edited during emission.
If the basic block ends in a switch that gets lowered to a jump table, any
phis at the default edge were getting updated wrong. The jump table data
structure keeps a pointer to the header blocks that wasn't getting updated
after the MBB is split.
This bug was exposed on 32-bit Linux when disabling critical edge splitting in
codegen prepare.
The fix is to uipdate stale MBB pointers whenever a block is split during
emission.
llvm-svn: 115191
|
|
|
|
| |
llvm-svn: 115102
|
|
|
|
|
|
| |
pipeline forwarding path.
llvm-svn: 115098
|
|
|
|
| |
llvm-svn: 115097
|
|
|
|
| |
llvm-svn: 115089
|
|
|
|
|
|
| |
the CFG, but HAD modified some PHI nodes. Fixes PR8174.
llvm-svn: 115083
|
|
|
|
| |
llvm-svn: 115067
|
|
|
|
| |
llvm-svn: 115002
|
|
|
|
| |
llvm-svn: 114999
|
|
|
|
|
|
| |
knows about them. This is not necessary on 10.6 and later.
llvm-svn: 114997
|
|
|
|
|
|
|
|
| |
plausible branch prediction
estimates.
llvm-svn: 114981
|
|
|
|
|
|
|
|
|
|
|
| |
if-conversion profitability.
Rather than having arbitrary cutoffs, actually try to cost model the conversion.
For now, the constants are tuned to more or less match our existing behavior, but these will be
changed to reflect realistic values as this work proceeds.
llvm-svn: 114973
|
|
|
|
| |
llvm-svn: 114969
|
|
|
|
| |
llvm-svn: 114920
|
|
|
|
|
|
| |
and asserts.
llvm-svn: 114843
|
|
|
|
|
|
|
| |
support aligned comm. Detect when compiling for 10.4 and don't
emit an alignment for comm. THis will hopefully fix PR8198.
llvm-svn: 114817
|
|
|
|
|
|
| |
overhead where possible. Thanks to Jakob for the suggestions.
llvm-svn: 114798
|
|
|
|
| |
llvm-svn: 114794
|
|
|
|
|
|
| |
whether LiveIntervals::getInstructionFromIndex(def) returns NULL.
llvm-svn: 114791
|
|
|
|
| |
llvm-svn: 114779
|
|
|
|
|
|
| |
and it will be removed shortly.
llvm-svn: 114778
|
|
|
|
| |
llvm-svn: 114776
|
|
|
|
| |
llvm-svn: 114767
|
|
|
|
| |
llvm-svn: 114750
|
|
|
|
|
|
| |
JIT of a GC point.
llvm-svn: 114736
|
|
|
|
|
|
| |
doubt it but it's possible it's exposing another bug somewhere.
llvm-svn: 114681
|
|
|
|
|
|
| |
Patch by Nathan Jeffords!
llvm-svn: 114661
|
|
|
|
|
|
| |
conditional one.
llvm-svn: 114634
|
|
|
|
|
|
| |
close to their sources to facilitate coalescing.
llvm-svn: 114631
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the unconditional branch destination is the fallthrough block. The
canonicalization makes it easier to allow optimizations on DAGs to invert
conditional branches. The branch folding pass (and AnalyzeBranch) will clean up
the unnecessary unconditional branches later.
This is one of the patches leading up to disabling codegen prepare critical edge
splitting.
llvm-svn: 114630
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to hide the gory details.
Allocator instances can now be created by calling createPBQPRegisterAllocator.
Tidied up use of CoalescerPair as per Jakob's suggestions.
Made the new PBQPBuilder based construction process the default. The internal construction process
remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new
process doesn't cause any regressions.
llvm-svn: 114626
|
|
|
|
|
|
|
| |
lowered using a series of shifts.
Fixes <rdar://problem/8285015>.
llvm-svn: 114599
|