| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
the input is that type, this caused a failure on gs on X86 last night.
Move the hard checks into Build[US]Div since that is where decisions like
this should be made.
llvm-svn: 23881
|
| |
|
|
|
|
|
| |
to group appropriately and provide cues to maintainers that the lists don't
need to be ordered.
llvm-svn: 23880
|
| |
|
|
| |
llvm-svn: 23878
|
| |
|
|
|
|
| |
2005-10-21-longlonggtu.ll.
llvm-svn: 23875
|
| |
|
|
|
|
|
|
| |
let the generic code handle it. This fixes CodeGen/Generic/2005-10-21-longlonggtu.ll on ppc.
also, reindent this code
llvm-svn: 23874
|
| |
|
|
| |
llvm-svn: 23870
|
| |
|
|
| |
llvm-svn: 23868
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For example, we can now join things like [0-30:0)[31-40:1)[52-59:2)
with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range.
The resultant range ends up being [0-30:0)[31-60:1).
This fires a lot through-out the test suite (e.g. shrinking bc from
19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about
50 copies eliminated from crafty).
llvm-svn: 23866
|
| |
|
|
|
|
|
|
|
|
| |
(an unused method).
Fix the merger so that it can merge ranges like this [10:12)[16:40) with
[12:38) into [10:40) instead of bogus ranges. This sort of input will be
possible for the merger coming shortly
llvm-svn: 23865
|
| |
|
|
|
|
| |
haven't seen it fire on our testsuite.
llvm-svn: 23863
|
| |
|
|
|
|
| |
allow pointer types.
llvm-svn: 23859
|
| |
|
|
| |
llvm-svn: 23858
|
| |
|
|
| |
llvm-svn: 23857
|
| |
|
|
| |
llvm-svn: 23856
|
| |
|
|
| |
llvm-svn: 23855
|
| |
|
|
|
|
|
|
|
|
| |
Add a new flag to TargetLowering indicating if the target has really cheap
signed division by powers of two, make ppc use it. This will probably go
away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.
llvm-svn: 23853
|
| |
|
|
|
|
| |
Expect new stuff to pass in the JIT tonight
llvm-svn: 23852
|
| |
|
|
| |
llvm-svn: 23851
|
| |
|
|
|
|
| |
Andrew for bringing this to my attn.
llvm-svn: 23850
|
| |
|
|
| |
llvm-svn: 23849
|
| |
|
|
| |
llvm-svn: 23848
|
| |
|
|
|
|
|
| |
for types that aren't legal, and fail a divisor is less than zero
comparison, which would cause us to drop a subtract.
llvm-svn: 23846
|
| |
|
|
| |
llvm-svn: 23845
|
| |
|
|
| |
llvm-svn: 23844
|
| |
|
|
| |
llvm-svn: 23843
|
| |
|
|
| |
llvm-svn: 23842
|
| |
|
|
|
|
|
|
| |
Fix a *bug* in the extendIntervalEndTo method. In particular, if adding
[2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30).
Which is not the most smart thing to do. Now produce [0:30).
llvm-svn: 23841
|
| |
|
|
| |
llvm-svn: 23839
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inner loop like this:
LBB_RateConvertMono8AltiVec_2: ; no_exit
lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
fmr f3, f3
fadd f0, f2, f0
fadd f3, f0, f3
fcmpu cr0, f3, f1
bge cr0, LBB_RateConvertMono8AltiVec_2 ; no_exit
to an inner loop like this:
LBB_RateConvertMono8AltiVec_1: ; no_exit
fsub f2, f2, f1
fcmpu cr0, f2, f1
fmr f0, f2
bge cr0, LBB_RateConvertMono8AltiVec_1 ; no_exit
Doh! good catch!
llvm-svn: 23838
|
| |
|
|
|
|
|
|
| |
for some common ops and use them for a few examples. Andrew, if you like
this, feel free to convert the rest over, if you hate it, feel free to
revert.
llvm-svn: 23837
|
| |
|
|
| |
llvm-svn: 23836
|
| |
|
|
|
|
|
| |
that the nodes can be folded with other nodes, and we can not duplicate
code in every backend. Alpha will probably want this too.
llvm-svn: 23835
|
| |
|
|
| |
llvm-svn: 23833
|
| |
|
|
|
|
|
|
| |
still lots of uglyness.
Maybe calls will come soon.
Fixing the return value of things will be necessary to make alpha work.
llvm-svn: 23832
|
| |
|
|
|
|
| |
Regression/CodeGen/Generic/2004-02-08-UnwindSupport.llx
llvm-svn: 23831
|
| |
|
|
|
|
|
| |
Note that when adding new instructions that you should refer to the table at the
bottom of PPCSchedule.td.
llvm-svn: 23830
|
| |
|
|
|
|
| |
doing something clever.
llvm-svn: 23824
|
| |
|
|
| |
llvm-svn: 23820
|
| |
|
|
| |
llvm-svn: 23818
|
| |
|
|
| |
llvm-svn: 23813
|
| |
|
|
| |
llvm-svn: 23811
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code for long long foo(long long a, long long b) { return a + b; }
_foo:
or r2, r3, r3
or r3, r4, r4
or r4, r5, r5
or r5, r6, r6
rldicr r2, r2, 32, 31
rldicl r3, r3, 0, 32
rldicr r4, r4, 32, 31
rldicl r5, r5, 0, 32
or r2, r3, r2
or r3, r5, r4
add r4, r3, r2
rldicl r2, r4, 32, 32
or r4, r4, r4
or r3, r2, r2
blr
llvm-svn: 23809
|
| |
|
|
| |
llvm-svn: 23805
|
| |
|
|
|
|
| |
the pair of elements is a legal type.
llvm-svn: 23804
|
| |
|
|
|
|
|
|
|
|
|
| |
will have to tide us over until we get real subreg support, but it prevents
the PrologEpilogInserter from spilling 8 byte GPRs on a G4 processor.
Add some initial support for TRUNCATE and ANY_EXTEND, but they don't
currently work due to issues with ScheduleDAG. Something wll have to be
figured out.
llvm-svn: 23803
|
| |
|
|
|
|
|
| |
allows us to lower legal return types to something else, to meet ABI
requirements (such as that i64 be returned in two i32 regs on Darwin/ppc).
llvm-svn: 23802
|
| |
|
|
|
|
| |
sized stack object if either the array size or the type size is zero.
llvm-svn: 23801
|
| |
|
|
| |
llvm-svn: 23797
|
| |
|
|
| |
llvm-svn: 23788
|
| |
|
|
| |
llvm-svn: 23787
|