- Oct 25, 2009
-
-
Nick Lewycky authored
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
-
Chris Lattner authored
llvm-svn: 85041
-
Chris Lattner authored
This allows us to simplify this: union vec2d { double e[2]; double v __attribute__((vector_size(16))); }; typedef union vec2d vec2d; static vec2d a={{1,2}}, b={{3,4}}; vec2d foo () { return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v }; } down to: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double 1.600000e+01, 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double 2.200000e+01, 1 ; <%0> [#uses=1] ret %0 %mrv6 } instead of: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 0), 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 1), 1 ; <%0> [#uses=1] ret %0 %mrv6 } llvm-svn: 85040
-
Chris Lattner authored
ConstantExpr::getBitCast in various places. llvm-svn: 85039
-
Chris Lattner authored
instead of returning null on failure. No functionality change. llvm-svn: 85038
-
Nick Lewycky authored
CmpInst::isSigned. llvm-svn: 85037
-
Nick Lewycky authored
which is equal to !isTrueWhenEqual for ints but not for floats. llvm-svn: 85036
-
Jim Grosbach authored
spill, it should avoid doing so inside the live range of a virtual register. llvm-svn: 85026
-
Dan Gohman authored
llvm-svn: 85020
-
Dan Gohman authored
used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. llvm-svn: 85019
-
Dan Gohman authored
llvm-svn: 85016
-
- Oct 24, 2009
-
-
Dan Gohman authored
llvm-svn: 85011
-
Sanjiv Gupta authored
llvm-svn: 85008
-
Sanjiv Gupta authored
llvm-svn: 85006
-
Chris Lattner authored
llvm-svn: 84993
-
Chris Lattner authored
Duncan for the nice tiny testcase. llvm-svn: 84992
-
Victor Hernandez authored
Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. llvm-svn: 84987
-
Evan Cheng authored
llvm-svn: 84986
-
Anton Korobeynikov authored
llvm-svn: 84983
-
Jim Grosbach authored
can access the hi regs. Our prologue and epilogue code doesn't know how to properly handle save/restore of the hi regs, so things go badly when we alloc them. llvm-svn: 84982
-
Evan Cheng authored
llvm-svn: 84978
-
Jim Grosbach authored
llvm-svn: 84977
-
http://llvm.org/PR4822Jeffrey Yasskin authored
compiled. When functions are compiled, they accumulate references in the JITResolver's stub maps. This patch removes those references when the functions are destroyed. It's illegal to destroy a Function when any thread may still try to call its machine code. This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs and fixes a couple "do stuff inside assert()" bugs from r84522. llvm-svn: 84975
-
- Oct 23, 2009
-
-
Victor Hernandez authored
Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary. llvm-svn: 84969
-
Dan Gohman authored
the scale overflows pointer-sized arithmetic. This fixes PR5281. llvm-svn: 84954
-
Dan Gohman authored
exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. llvm-svn: 84952
-
Chris Lattner authored
llvm-svn: 84943
-
Chris Lattner authored
implements something out of Target/README.txt producing: _foo: ## @foo movl 4(%esp), %eax movapd LCPI1_0, %xmm0 movapd %xmm0, (%eax) ret $4 instead of: _foo: ## @foo movl 4(%esp), %eax movapd _b, %xmm0 mulpd LCPI1_0, %xmm0 addpd _a, %xmm0 movapd %xmm0, (%eax) ret $4 llvm-svn: 84942
-
Chris Lattner authored
bytes (i256). llvm-svn: 84941
-
Chris Lattner authored
non-type-safe constant initializers. This sort of thing happens quite a bit for 4-byte loads out of string constants, unions, bitfields, and an interesting endianness check from sqlite, which is something like this: const int sqlite3one = 1; # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) all of these macros now constant fold away. This implements PR3152 and is based on a patch started by Eli, but heavily modified and extended. llvm-svn: 84936
-
Evan Cheng authored
llvm-svn: 84931
-
Dale Johannesen authored
they don't get lost; I don't think the originator has write access. llvm-svn: 84928
-
Victor Hernandez authored
llvm-svn: 84919
-
Bill Wendling authored
does. llvm-svn: 84916
-
David Goodwin authored
Allow the target to select the level of anti-dependence breaking that should be performed by the post-RA scheduler. The default is none. llvm-svn: 84911
-
Ted Kremenek authored
Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' prevents it being correct within a multithreaded context. This address: PR 5277 (Program::Wait is unsafe to call from multiple threads). Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into another solution. llvm-svn: 84903
-
- Oct 22, 2009
-
-
Benjamin Kramer authored
llvm-svn: 84898
-
Jeffrey Yasskin authored
llvm-svn: 84895
-
Bill Wendling authored
llvm-svn: 84894
-
Devang Patel authored
llvm-svn: 84886
-