| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 97963
|
| |
|
|
|
|
| |
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.
llvm-svn: 97947
|
| |
|
|
| |
llvm-svn: 97939
|
| |
|
|
| |
llvm-svn: 97938
|
| |
|
|
| |
llvm-svn: 97932
|
| |
|
|
| |
llvm-svn: 97917
|
| |
|
|
| |
llvm-svn: 97914
|
| |
|
|
|
|
| |
(Rolling back r97906.)
llvm-svn: 97909
|
| |
|
|
|
|
| |
Valgrind!
llvm-svn: 97906
|
| |
|
|
| |
llvm-svn: 97895
|
| |
|
|
| |
llvm-svn: 97861
|
| |
|
|
|
|
| |
functional change yet.
llvm-svn: 97855
|
| |
|
|
|
|
| |
conversions.
llvm-svn: 97854
|
| |
|
|
|
|
|
|
|
| |
is a workaround for <rdar://problem/7672401/> (which I filed).
This let's us build Wine on Darwin, and it gets the Qt build there a little bit
further (so Doug says).
llvm-svn: 97845
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CALL ... %RAX<imp-def>
... [not using %RAX]
%EAX = ..., %RAX<imp-use, kill>
RET %EAX<imp-use,kill>
Now we do this:
CALL ... %RAX<imp-def, dead>
... [not using %RAX]
%EAX = ...
RET %EAX<imp-use,kill>
By not artificially keeping %RAX alive, we lower register pressure a bit.
The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously
55, anybody can see that. Sheesh.
llvm-svn: 97838
|
| |
|
|
|
|
| |
post-ra scheduler has run. Disable the verifier checks that late in the game.
llvm-svn: 97837
|
| |
|
|
| |
llvm-svn: 97836
|
| |
|
|
|
|
|
|
|
|
|
| |
node which has a flag. That flag in turn was used by an
already-selected adde which turned into an ADC32ri8 which
used a selected load which was chained to the load we
folded. This flag use caused us to form a cycle. Fix
this by not ignoring chains in IsLegalToFold even in
cases where the isel thinks it can.
llvm-svn: 97791
|
| |
|
|
| |
llvm-svn: 97789
|
| |
|
|
| |
llvm-svn: 97781
|
| |
|
|
| |
llvm-svn: 97779
|
| |
|
|
|
|
|
|
|
| |
rounding correctly. This implementation is a generalization of
the x86_64 code in compiler-rt.
This fixes rdar://7683708.
llvm-svn: 97778
|
| |
|
|
| |
llvm-svn: 97765
|
| |
|
|
|
|
| |
positive where pointers would be leaked on llvm_shutdown.
llvm-svn: 97759
|
| |
|
|
|
|
|
|
| |
as nounwind are marked with a -1 call-site value. This is necessary to, for
example, correctly process exceptions thrown from within an "unexpected"
execption handler (see SingleSource/Regression/C++/EH/expection_spec_test.cpp).
llvm-svn: 97757
|
| |
|
|
| |
llvm-svn: 97752
|
| |
|
|
| |
llvm-svn: 97747
|
| |
|
|
| |
llvm-svn: 97738
|
| |
|
|
| |
llvm-svn: 97735
|
| |
|
|
| |
llvm-svn: 97713
|
| |
|
|
|
|
| |
dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86.
llvm-svn: 97706
|
| |
|
|
|
|
|
|
|
|
| |
as the very last thing before node emission. This should
dramatically reduce the number of times we do 'MatchAddress'
on X86, speeding up compile time. This also improves comments
in the tables and shrinks the table a bit, now down to
80506 bytes for x86.
llvm-svn: 97703
|
| |
|
|
|
|
| |
a patch my Micah Villmow for PR6465.
llvm-svn: 97692
|
| |
|
|
| |
llvm-svn: 97690
|
| |
|
|
|
|
| |
cannot be CSE'ed, but it *can* be used to replace a common subexpression.
llvm-svn: 97688
|
| |
|
|
| |
llvm-svn: 97687
|
| |
|
|
|
|
| |
over only virtual register defs. This matches what isEqual() is doing.
llvm-svn: 97680
|
| |
|
|
|
|
| |
implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization.
llvm-svn: 97678
|
| |
|
|
| |
llvm-svn: 97673
|
| |
|
|
| |
llvm-svn: 97670
|
| |
|
|
| |
llvm-svn: 97667
|
| |
|
|
|
|
|
|
|
|
| |
CSE and recursive RAUW calls delete a node from the use list,
invalidating the use list iterator. There's currently no known
way to reproduce this in an unmodified LLVM, however there's no
fundamental reason why a SelectionDAG couldn't be formed which
would trigger this case.
llvm-svn: 97665
|
| |
|
|
|
|
| |
physical registers are getting in the way.
llvm-svn: 97664
|
| |
|
|
| |
llvm-svn: 97663
|
| |
|
|
|
|
|
| |
--- Reverse-merging r97592 into '.':
U lib/CodeGen/TargetLoweringObjectFileImpl.cpp
llvm-svn: 97657
|
| |
|
|
|
|
| |
Scope accelerator.
llvm-svn: 97652
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
entry we're about to process is obviously going to fail, don't
bother pushing a scope only to have it immediately be popped.
This avoids a lot of scope stack traffic in common cases.
Unfortunately, this requires duplicating some of the predicate
dispatch. To avoid duplicating the actual logic I pulled each
predicate out to its own static function which gets used in
both places.
llvm-svn: 97651
|
| |
|
|
|
|
|
|
| |
SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This
speeds up selection, particularly for X86 which has lots of
variants of instructions with only type differences.
llvm-svn: 97645
|
| |
|
|
| |
llvm-svn: 97635
|
| |
|
|
| |
llvm-svn: 97631
|