- Mar 08, 2009
-
-
Chris Lattner authored
instead of a Constant*, which is what the clients of it really want. llvm-svn: 66364
-
Chris Lattner authored
llvm-svn: 66362
-
Chris Lattner authored
parent between MemCpyInst and MemMoveInst, simplify some code to use it. llvm-svn: 66361
-
Chris Lattner authored
"boolify" pointers, generating really awful code because getting the pointer value requires a load itself. Before: _foo: movb $1, _X.b ret _get: xorl %ecx, %ecx movb _X.b, %al testb %al, %al movl $_Y, %eax cmove %ecx, %eax ret With the xform disabled: _foo: movl $_Y, _X ret _get: movl _X, %eax ret llvm-svn: 66351
-
- Mar 07, 2009
-
-
Duncan Sands authored
and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. llvm-svn: 66339
-
- Mar 06, 2009
-
-
Dale Johannesen authored
an optimization. llvm-svn: 66288
-
Chris Lattner authored
Lennart Augustsson! llvm-svn: 66272
-
Duncan Sands authored
to find a tiny mouse hole to squeeze through, it struck me that globals without a name can be considered internal since they can't be referenced from outside the current module. This patch makes GlobalOpt give them internal linkage. Also done for aliases even though they always have names, since in my opinion anonymous aliases should be allowed for consistency with global variables and functions. So if that happens one day, this code is ready! llvm-svn: 66267
-
Devang Patel authored
llvm-svn: 66262
-
Devang Patel authored
llvm-svn: 66255
-
Chris Lattner authored
llvm-svn: 66252
-
Chris Lattner authored
their main routines. This makes the tools print their argc/argv commands if they crash. llvm-svn: 66248
-
Devang Patel authored
llvm-svn: 66245
-
Devang Patel authored
llvm-svn: 66244
-
Dale Johannesen authored
This is needed so debug info doesn't change codegen. llvm-svn: 66235
-
Devang Patel authored
llvm-svn: 66233
-
Devang Patel authored
We are still not out of woods yet. llvm-svn: 66232
-
Evan Cheng authored
llvm-svn: 66227
-
Dale Johannesen authored
debug intrinsics correctly. llvm-svn: 66225
-
Devang Patel authored
llvm-svn: 66224
-
Devang Patel authored
llvm-svn: 66223
-
- Mar 05, 2009
-
-
Devang Patel authored
If non constant local GV named A is used by a constant local GV named B (e.g. llvm.dbg.variable) and B is not used by anyone else then eliminate A as well as B. In other words, debug info should not interfere in removal of unused GV. --This life, and those below, will be ignored-- M test/Transforms/GlobalOpt/2009-03-03-dbg.ll M lib/Transforms/IPO/GlobalOpt.cpp llvm-svn: 66167
-
Evan Cheng authored
llvm-svn: 66140
-
Dale Johannesen authored
codegen. I convinced myself it was OK to skip all pointer bitcasts here too. llvm-svn: 66122
-
Bill Wendling authored
llvm-svn: 66115
-
Dale Johannesen authored
had 2 uses instead of 1. llvm-svn: 66112
-
- Mar 04, 2009
-
-
-
Dale Johannesen authored
was causing llvm-gcc to fail to build. I've verified it bootstraps now; good enough for me. llvm-svn: 66073
-
Dan Gohman authored
llvm-svn: 66065
-
Dan Gohman authored
immediately obvious. llvm-svn: 66062
-
Chris Lattner authored
llvm-svn: 66055
-
Chris Lattner authored
llvm-svn: 66054
-
Chris Lattner authored
onto element accesses. llvm-svn: 66053
-
Dale Johannesen authored
llvm-svn: 66001
-
Dale Johannesen authored
llvm-svn: 66000
-
Dale Johannesen authored
per Chris' suggestion. Slightly faster. llvm-svn: 65999
-
Devang Patel authored
If a global constant is dead then global's debug info should not prevent the optimizer in deleting the global. And while deleting global, delete global's debug info also. llvm-svn: 65994
-
Dale Johannesen authored
when counting work; it was only off by 1. llvm-svn: 65993
-
Dale Johannesen authored
caused them to be considered trivially dead. Fix this. llvm-svn: 65979
-
- Mar 03, 2009
-
-
Dale Johannesen authored
feed into llvm.dbg.declare nodes, as well as the debug directives themselves. llvm-svn: 65976
-