| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
|
|
| |
an upcoming optimization in the DAG Combiner.
llvm-svn: 23834
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 23829
|
| |
|
|
|
|
| |
Regression/Codegen/X86.
llvm-svn: 23826
|
| |
|
|
|
|
| |
doing something clever.
llvm-svn: 23824
|
| |
|
|
| |
llvm-svn: 23821
|
| |
|
|
| |
llvm-svn: 23820
|
| |
|
|
|
|
|
|
|
|
| |
write things like this:
def : Pat<(add GPRC:$in, 12),
(ADD12 GPRC:$in)>;
Andrew: if this isn't enough or doesn't work for you, please lemme know.
llvm-svn: 23819
|
| |
|
|
| |
llvm-svn: 23818
|
| |
|
|
| |
llvm-svn: 23817
|
| |
|
|
|
|
| |
instead of a happy error message
llvm-svn: 23816
|
| |
|
|
|
|
|
|
|
| |
def : Pat<(trunc G8RC:$in),
(OR8To4 G8RC:$in, X0)>;
Even though this doesn't make any sense on PPC :)
llvm-svn: 23815
|
| |
|
|
| |
llvm-svn: 23814
|
| |
|
|
| |
llvm-svn: 23813
|
| |
|
|
| |
llvm-svn: 23812
|
| |
|
|
| |
llvm-svn: 23811
|
| |
|
|
|
|
| |
patterns. Certainly a logical request.
llvm-svn: 23810
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 23806
|
| |
|
|
| |
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: 23798
|
| |
|
|
| |
llvm-svn: 23797
|
| |
|
|
| |
llvm-svn: 23790
|
| |
|
|
| |
llvm-svn: 23789
|
| |
|
|
| |
llvm-svn: 23788
|
| |
|
|
| |
llvm-svn: 23787
|
| |
|
|
| |
llvm-svn: 23786
|
| |
|
|
| |
llvm-svn: 23785
|
| |
|
|
| |
llvm-svn: 23784
|
| |
|
|
|
|
|
| |
all but main. If it's not set, we can still internalize, but only if an
explicit symbol list is provided.
llvm-svn: 23783
|
| |
|
|
| |
llvm-svn: 23782
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a lot throughout many programs. In particular, specfp triggers it a bunch for
constant FP nodes when you have code like cond ? 1.0 : -1.0.
If the PPC ISel exposed the loads implicit in pic references to external globals,
we would be able to eliminate a load in cases like this as well:
%X = external global int
%Y = external global int
int* %test4(bool %C) {
%G = select bool %C, int* %X, int* %Y
ret int* %G
}
Note that this breaks things that use SrcValue's (see the fixme), but since nothing
uses them yet, this is ok.
Also, simplify some code to use hasOneUse() on an SDOperand instead of hasNUsesOfValue directly.
llvm-svn: 23781
|
| |
|
|
| |
llvm-svn: 23780
|
| |
|
|
|
|
|
| |
option. Currently the only way to enable this is to specify the
64bitregs mattr flag. It is never enabled by default on any config yet.
llvm-svn: 23779
|
| |
|
|
|
|
| |
purely mechanical.
llvm-svn: 23778
|
| |
|
|
| |
llvm-svn: 23777
|
| |
|
|
| |
llvm-svn: 23776
|
| |
|
|
|
|
| |
This allows the test to work when srcdir != objdir.
llvm-svn: 23775
|