| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
and PR632.
llvm-svn: 23484
|
| |
|
|
|
|
|
|
| |
implements
ctor-list-opt.ll:CTOR8
llvm-svn: 23465
|
| |
|
|
|
|
| |
potentially replaced at link-time.
llvm-svn: 23463
|
| |
|
|
|
|
|
|
| |
because gccas runs globalopt before inlining.
This implements ctor-list-opt.ll:CTOR7
llvm-svn: 23462
|
| |
|
|
| |
llvm-svn: 23460
|
| |
|
|
| |
llvm-svn: 23453
|
| |
|
|
| |
llvm-svn: 23452
|
| |
|
|
| |
llvm-svn: 23450
|
| |
|
|
|
|
| |
ctor-list-opt.ll:CTOR5.
llvm-svn: 23449
|
| |
|
|
| |
llvm-svn: 23447
|
| |
|
|
| |
llvm-svn: 23442
|
| |
|
|
| |
llvm-svn: 23441
|
| |
|
|
| |
llvm-svn: 23439
|
| |
|
|
|
|
| |
global ctors that are simple enough. This implements ctor-list-opt.ll:CTOR2.
llvm-svn: 23437
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 23435
|
| |
|
|
|
|
| |
accepting the null even with a non-65535 init prio
llvm-svn: 23434
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the start of global ctor optimization. It is currently smart
enough to remove the global ctor for cases like this:
struct foo {
foo() {}
} x;
... saving a bit of startup time for the program.
llvm-svn: 23433
|
| |
|
|
|
|
| |
SimplifyLibCalls/2005-05-20-sprintf-crash.ll
llvm-svn: 23430
|
| |
|
|
|
|
|
|
| |
sprintf("%s", P)'s that have uses.
s/hasNUses(0)/use_empty()/
llvm-svn: 23425
|
| |
|
|
|
|
|
| |
Regression/Transforms/SimplifyLibCalls/floor.ll. This triggers 19 times in
177.mesa.
llvm-svn: 23017
|
| |
|
|
| |
llvm-svn: 22694
|
| |
|
|
|
|
|
|
|
|
| |
SimplifyLibCalls probably has to be audited to make sure it does not make
this mistake elsewhere. Also, if this code knows that the type will be
unsigned, obviously one arm of this is dead.
Reid, can you take a look into this further?
llvm-svn: 22566
|
| |
|
|
| |
llvm-svn: 22523
|
| |
|
|
| |
llvm-svn: 22312
|
| |
|
|
|
|
|
|
|
| |
is a mismatch in their character type pointers (i.e. fprintf() prints an
array of ubytes while fwrite() takes an array of sbytes).
We can probably do better than this (such as casting the ubyte to an
sbyte).
llvm-svn: 22310
|
| |
|
|
| |
llvm-svn: 22277
|
| |
|
|
|
|
| |
not casting to the correct type.
llvm-svn: 22250
|
| |
|
|
| |
llvm-svn: 22223
|
| |
|
|
|
|
| |
or other uses hanging off of them.
llvm-svn: 22219
|
| |
|
|
|
|
| |
(void*)0.
llvm-svn: 22205
|
| |
|
|
|
|
| |
document what its for a little better.
llvm-svn: 22164
|
| |
|
|
| |
llvm-svn: 22163
|
| |
|
|
| |
llvm-svn: 22162
|
| |
|
|
| |
llvm-svn: 22161
|
| |
|
|
|
|
|
|
| |
sprintf(P, "%s", X);
Where X is not an sbyte*. This fixes the bug JohnMC reported on llvm-bugs.
llvm-svn: 22159
|
| |
|
|
| |
llvm-svn: 22113
|
| |
|
|
|
|
| |
not reason to include it for other front ends.
llvm-svn: 22070
|
| |
|
|
|
|
| |
ffs(x) -> (x == 0 ? 0 : 1+llvm.cttz(x))
llvm-svn: 22068
|
| |
|
|
|
|
| |
for one of the values that it defines!
llvm-svn: 22058
|
| |
|
|
|
|
|
|
| |
* Check for availability of ffsll call in configure script
* Support ffs, ffsl, and ffsll conversion to constant value if the argument
is constant.
llvm-svn: 22027
|
| |
|
|
| |
llvm-svn: 21798
|
| |
|
|
| |
llvm-svn: 21791
|
| |
|
|
|
|
|
|
|
|
|
|
| |
strlen(x) != 0 -> *x != 0
strlen(x) == 0 -> *x == 0
* Change nested statistics to use style of other LLVM statistics so that
only the name of the optimization (simplify-libcalls) is used as the
statistic name, and the description indicates which specific all is
optimized. Cuts down on some redundancy and saves a few bytes of space.
* Make note of stpcpy optimization that could be done.
llvm-svn: 21766
|
| |
|
|
| |
llvm-svn: 21762
|
| |
|
|
| |
llvm-svn: 21734
|
| |
|
|
| |
llvm-svn: 21720
|
| |
|
|
|
|
| |
LowerSetJmp/2005-05-05-OldUses.ll
llvm-svn: 21696
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
library function:
isdigit(chr) -> 0 or 1 if chr is constant
isdigit(chr) -> chr - '0' <= 9 otherwise
Although there are many calls to isdigit in llvm-test, most of them are
compiled away by macros leaving only this:
2 MultiSource/Applications/hexxagon
llvm-svn: 21688
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actual spec (int -> uint)
* Add the ability to get/cache the strlen function prototype.
* Make sure generated values are appropriately named for debugging purposes
* Add the SPrintFOptimiation for 4 casts of sprintf optimization:
sprintf(str,cstr) -> llvm.memcpy(str,cstr) (if cstr has no %)
sprintf(str,"") -> store sbyte 0, str
sprintf(str,"%s",src) -> llvm.memcpy(str,src) (if src is constant)
sprintf(str,"%c",chr) -> store chr, str ; store sbyte 0, str+1
The sprintf optimization didn't fire as much as I had hoped:
2 MultiSource/Applications/SPASS
5 MultiSource/Benchmarks/McCat/18-imp
22 MultiSource/Benchmarks/Prolangs-C/TimberWolfMC
1 MultiSource/Benchmarks/Prolangs-C/assembler
6 MultiSource/Benchmarks/Prolangs-C/unix-smail
2 MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec
llvm-svn: 21679
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Neither of these activated as many times as was hoped:
strchr:
9 MultiSource/Applications/siod
1 MultiSource/Applications/d
2 MultiSource/Prolangs-C/archie-client
1 External/SPEC/CINT2000/176.gcc/176.gcc
llvm.memset:
no hits
llvm-svn: 21669
|