- Mar 29, 2010
-
-
Devang Patel authored
This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. llvm-svn: 99816
-
Chris Lattner authored
llvm-svn: 99815
-
Chris Lattner authored
doesn't need to be stable because the patterns are fully ordered. Add a first level sort predicate that orders patterns in this order: 1) scalar integer operations 2) scalar floating point 3) vector int 4) vector float. This is a trivial sort on their top level pattern type so it is nice and transitive. The benefit of doing this is that simple integer operations are much more common than insane vector things and isel was trying to match the big complex vector patterns before the simple ones because the complexity of the vector operations was much higher. Since they can't both match, it is best (for compile time) to try the simple integer ones first. This cuts down the # failed match attempts on real code by quite a bit, for example, this reduces backtracks on crafty (as a random example) from 228285 -> 188369. llvm-svn: 99797
-
Chris Lattner authored
llvm-svn: 99796
-
Chris Lattner authored
patterns within the generated matcher. This works great except that the sort fails because the relation defined isn't transitive. I have a much simpler solution coming next, but want to archive the code. llvm-svn: 99795
-
Chris Lattner authored
comment in the generated table. llvm-svn: 99794
-
Johnny Chen authored
These instructions use byte index in a control vector (M:Vm) to lookup byte values in a table and generate a new vector (D:Vd). The table is specified via a list of vectors, which can be: {Dn} {Dn D<n+1>} {Dn D<n+1> D<n+2>} {Dn D<n+1> D<n+2> D<n+3>} llvm-svn: 99789
-
- Mar 28, 2010
-
-
Devang Patel authored
llvm-svn: 99778
-
Chris Lattner authored
llvm-svn: 99774
-
Devang Patel authored
llvm-svn: 99772
-
Chris Lattner authored
llvm-svn: 99770
-
Anton Korobeynikov authored
Otherwise, e.g. in the invocation like clang -DFOO=\"bar\" FOO macro got the bar value, not "bar". Patch by Alexander Esilevich! llvm-svn: 99763
-
Torok Edwin authored
SELinux doesn't allow 'execmem', returning MAP_FAILED and 'Permission denied' for mmap or RWX memory. In this case AllocateRWX was returning a MemoryBlock with uninitialized fields, which sometimes caused crashes. This patch initializes MemoryBlock fields to 0, so that the RWX-failure check works. It doesn't fix the SELinux 'execmem' issues though (the JIT will not work when SELinux is in enforcing mode). llvm-svn: 99762
-
Chris Lattner authored
where an incorrect number of operands is provided to an sdnode instead of just a few cases. llvm-svn: 99761
-
Chris Lattner authored
llvm-svn: 99760
-
Chris Lattner authored
and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) llvm-svn: 99759
-
Chris Lattner authored
matchable: it seems like it would always constant fold. llvm-svn: 99758
-
Chris Lattner authored
this also depends on the new "bitconvert dropping" behavior just added to tblgen. llvm-svn: 99757
-
Chris Lattner authored
transforming it into (add (i32 GPR), 4). This allows us to write type generic multi patterns and have tblgen automatically drop the bitconvert in the case when the types align. This allows us to fold an extra load in the changed testcase. llvm-svn: 99756
-
Chris Lattner authored
llvm-svn: 99755
-
Chris Lattner authored
input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. llvm-svn: 99754
-
Chris Lattner authored
patterns that would never match because of bitcast, and eliminating use of vnot_conv. llvm-svn: 99753
-
Chris Lattner authored
llvm-svn: 99752
-
Chris Lattner authored
llvm-svn: 99751
-
Chris Lattner authored
llvm-svn: 99750
-
Chris Lattner authored
*input* of other type, which is the VT. llvm-svn: 99749
-
Chris Lattner authored
llvm-svn: 99748
-
Chris Lattner authored
llvm-svn: 99747
-
Chris Lattner authored
by rotating it. llvm-svn: 99746
-
Chris Lattner authored
llvm-svn: 99745
-
Chris Lattner authored
llvm-svn: 99744
-
Chris Lattner authored
llvm-svn: 99743
-
Chris Lattner authored
llvm-svn: 99742
-
Chris Lattner authored
are cleaned up, we can remove an old fixme. llvm-svn: 99741
-
Chris Lattner authored
1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
-
Chris Lattner authored
can cause a crash on crazy situations in msp430 when morph-node-to is disabled. llvm-svn: 99739
-
Chris Lattner authored
their flags correctly. llvm-svn: 99738
-
Chris Lattner authored
llvm-svn: 99737
-
Chris Lattner authored
nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
-
Chris Lattner authored
list multiple times when MorphNodeTo can't be applied. llvm-svn: 99735
-