| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 114585
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
creating it before and subtracting split ranges.
This way, the SSA update code in LiveIntervalMap can properly create and use new
phi values in dupli. Now it is possible to create split regions where a value
escapes along two different CFG edges, creating phi values outside the split
region.
This is a work in progress and probably quite broken.
llvm-svn: 114492
|
| |
|
|
| |
llvm-svn: 114490
|
| |
|
|
|
|
|
|
| |
that complex patterns are matched after the entire pattern has
a structural match, therefore the NodeStack isn't in a useful
state when the actual call to the matcher happens.
llvm-svn: 114489
|
| |
|
|
|
|
|
|
|
| |
current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg.
Testcase is in r114476.
This fixes radar 8412415.
llvm-svn: 114478
|
| |
|
|
| |
llvm-svn: 114474
|