- Dec 22, 2007
-
-
Anton Korobeynikov authored
llvm-svn: 45314
-
Evan Cheng authored
llvm-svn: 45313
-
Evan Cheng authored
llvm-svn: 45312
-
Chris Lattner authored
us to compile: #include <math.h> int t1(double d) { return signbit(d); } into: _t1: movd %xmm0, %rax shrq $63, %rax ret instead of: _t1: movd %xmm0, %rax shrq $32, %rax shrl $31, %eax ret on x86-64. llvm-svn: 45311
-
Owen Anderson authored
llvm-svn: 45310
-
Owen Anderson authored
Remove critical edge breaking. It won't be necessary as long as we are very careful when inserting copies. llvm-svn: 45309
-
Evan Cheng authored
llvm-svn: 45307
-
Devang Patel authored
not merge current bb and succ even if bb's terminator is unconditional branch to succ. llvm-svn: 45305
-
Evan Cheng authored
llvm-svn: 45304
-
Anton Korobeynikov authored
llvm-svn: 45300
-
- Dec 21, 2007
-
-
Duncan Sands authored
of this patch is the last line). llvm-svn: 45289
-
Duncan Sands authored
as on functions. Make it verify invokes and not just ordinary calls. As a (desired) side-effect, it is no longer legal to have call attributes on arguments that are being passed to the varargs part of a varargs function (llvm-as drops them on the floor anyway). llvm-svn: 45286
-
Duncan Sands authored
return attributes on the floor. In the case of a call to a varargs function where the varargs arguments are being removed, any call attributes on those arguments need to be dropped. I didn't do this because I plan to make it illegal to have such attributes (see next patch). With this change, compiling the gcc filter2 eh test at -O0 and then running opt -std-compile-opts on it results in a correctly working program (compiling at -O1 or higher results in the test failing due to a problem with how we output eh info into the IR). llvm-svn: 45285
-
Nicolas Geoffray authored
llvm-svn: 45282
-
Nicolas Geoffray authored
llvm-svn: 45281
-
Evan Cheng authored
llvm-svn: 45280
-
- Dec 20, 2007
-
-
Evan Cheng authored
llvm-svn: 45268
-
Evan Cheng authored
llvm-svn: 45259
-
Christopher Lamb authored
(icmp slt (sub A B) 1) -> (icmp sle A B) icmp sgt (sub A B) -1) -> (icmp sge A B) and add testcase. llvm-svn: 45256
-
Evan Cheng authored
llvm-svn: 45253
-
Evan Cheng authored
llvm-svn: 45252
-
Evan Cheng authored
Clean up previous patch: PHI uses should not prevent iv reuse if all other uses are addresses. This trades a constant multiply for one fewer iv. llvm-svn: 45251
-
Chris Lattner authored
has a single use, and generalize it to not require N to be a constant. llvm-svn: 45250
-
Bill Wendling authored
llvm-svn: 45245
-
Scott Michel authored
- vec_const.ll: Vector constant loads - immed64.ll: i64, f64 constant loads llvm-svn: 45242
-
Evan Cheng authored
llvm-svn: 45230
-
- Dec 19, 2007
-
-
Gordon Henriksen authored
to exceptions rather than variants for error handling in Ocaml. llvm-svn: 45226
-
Dale Johannesen authored
are a couple of issues that show up with the optimizer, but I don't think they're really EH problems. (llvm-gcc testsuite users note: By default the testsuite uses the unwinding code that's built as part of your local llvm-gcc, which does not work. You need to trick it into using the installed system unwinding code to get useful results.) llvm-svn: 45221
-
Scott Michel authored
llvm-svn: 45219
-
Duncan Sands authored
calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually needed for correctness. llvm-svn: 45218
-
Scott Michel authored
(vector insertions) llvm-svn: 45216
-
Duncan Sands authored
llvm-svn: 45198
-
Duncan Sands authored
to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). llvm-svn: 45197
-
Scott Michel authored
llvm-svn: 45196
-
Bill Wendling authored
llvm-svn: 45190
-
Evan Cheng authored
llvm-svn: 45186
-
- Dec 18, 2007
-
-
Ted Kremenek authored
llvm-svn: 45182
-
Bill Wendling authored
llvm-svn: 45178
-
Christopher Lamb authored
from _foo: movl $99, %ecx movl 4(%esp), %eax subl %eax, %ecx xorl %edx, %edx testl %ecx, %ecx cmovs %edx, %eax ret to _foo: xorl %ecx, %ecx movl 4(%esp), %eax cmpl $99, %eax cmovg %ecx, %eax ret llvm-svn: 45173
-
Anton Korobeynikov authored
llvm-svn: 45172
-