| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 52736
|
| |
|
|
| |
llvm-svn: 52723
|
| |
|
|
| |
llvm-svn: 52705
|
| |
|
|
| |
llvm-svn: 52704
|
| |
|
|
|
|
|
|
| |
failures fixed.
Also add a testcase to reproduce the gcc bootstrap failure in very much reduced form.
llvm-svn: 52677
|
| |
|
|
| |
llvm-svn: 52672
|
| |
|
|
| |
llvm-svn: 52606
|
| |
|
|
| |
llvm-svn: 52570
|
| |
|
|
| |
llvm-svn: 52539
|
| |
|
|
|
|
| |
type wasn't changed.
llvm-svn: 52538
|
| |
|
|
|
|
| |
into T) when no return values are actually dead.
llvm-svn: 52537
|
| |
|
|
|
|
|
|
| |
DeadArgumentElimination and assert that the function type does not change if
nothing was changed. This should catch subtle changes in function type that are
not intended.
llvm-svn: 52536
|
| |
|
|
| |
llvm-svn: 52535
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is a fixed version that no longer uses multimap::equal_range, which
resulted in a pointer invalidation problem.
Also, DAE::InspectedFunctions was not really necessary, so it got removed.
Lastly, this version no longer applies the extra arg hack on functions who did
not have any arguments to start with.
llvm-svn: 52532
|
| |
|
|
|
|
| |
using BasicBlock::getInstList.
llvm-svn: 52500
|
| |
|
|
|
|
|
| |
using getOperand() directly. This makes things work with invoke instructions as
well.
llvm-svn: 52489
|
| |
|
|
|
|
|
|
| |
MultiSource/Applications/SPASS, and possibly others as well.
Please reapply once this is fixed.
llvm-svn: 52465
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
dependencies between return values and/or arguments. Also make the handling of
arguments and return values the same.
The pass now looks properly inside returned structs, but only at the first
level (ie, not inside nested structs).
Also add a testcase for testing various variations of (multiple) dead rerturn
values.
llvm-svn: 52459
|
| |
|
|
|
|
|
|
| |
time. Sorry for the trouble!
This time, also add a testcase, which I should have done in the first place...
llvm-svn: 52455
|
| |
|
|
|
|
| |
commit after this).
llvm-svn: 52453
|
| |
|
|
| |
llvm-svn: 52415
|
| |
|
|
|
|
|
|
| |
speaking these are not constant values. However, when a function always returns
one of its arguments, then from the point of view of each caller the return
value is constant (or at least a known value) and can be replaced.
llvm-svn: 52397
|
| |
|
|
|
|
|
|
|
|
|
| |
individually.
Also learn IPConstProp how returning first class aggregates work, in addition
to old style multiple return instructions.
Modify the return-constants testscase to confirm this behaviour.
llvm-svn: 52396
|
| |
|
|
|
|
| |
result of a weak function.
llvm-svn: 52137
|
| |
|
|
|
|
| |
not other instructions. This fixes a crash with the added testcase.
llvm-svn: 51992
|
| |
|
|
|
|
| |
passing its pointer. Fixes test with added testcase.
llvm-svn: 51991
|
| |
|
|
|
|
|
| |
function is passed as an argument instead of called. Also do this check a bit
earlier.
llvm-svn: 51990
|
| |
|
|
|
|
| |
changes).
llvm-svn: 51947
|
| |
|
|
| |
llvm-svn: 51770
|
| |
|
|
| |
llvm-svn: 51663
|
| |
|
|
| |
llvm-svn: 51591
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the section or the visibility from one global
value to another: copyAttributesFrom. This is
particularly useful for duplicating functions:
previously this was done by explicitly copying
each attribute in turn at each place where a
new function was created out of an old one, with
the result that obscure attributes were regularly
forgotten (like the collector or the section).
Hopefully now everything is uniform and nothing
is forgotten.
llvm-svn: 51567
|
| |
|
|
| |
llvm-svn: 51477
|
| |
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51459
|
| |
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51456
|
| |
|
|
|
|
| |
suggested by Duncan.
llvm-svn: 51211
|
| |
|
|
|
|
|
|
|
| |
replaced at linktime with a body that throws, even
if the body in this file does not. Make PruneEH
be more conservative in this case.
g++.dg/eh/weak1.C
llvm-svn: 51207
|
| |
|
|
|
|
| |
Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
llvm-svn: 51200
|
| |
|
|
|
|
| |
makefile targets to find these better.
llvm-svn: 51143
|
| |
|
|
|
|
| |
Patch by Matthijs Kooijman!
llvm-svn: 51114
|
| |
|
|
| |
llvm-svn: 51021
|
| |
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
| |
|
|
| |
llvm-svn: 50900
|
| |
|
|
|
|
| |
Patch by Matthijs Kooijman!
llvm-svn: 50861
|
| |
|
|
| |
llvm-svn: 50851
|
| |
|
|
| |
llvm-svn: 50696
|
| |
|
|
|
|
|
|
| |
a FunctionPass. This makes it simpler, fixes dozens of bugs, adds
a couple of minor features, and shrinks is considerably: from
2214 to 1437 lines.
llvm-svn: 50520
|
| |
|
|
| |
llvm-svn: 50464
|
| |
|
|
|
|
|
|
|
|
| |
generalizes the previous code to handle the case when the string is not
an immediate to the strlen call (for example, crazy stuff like
strlen(c ? "foo" : "bart"+1) -> 3). This implements
gcc.c-torture/execute/builtins/strlen-2.c. I will generalize other
cases in simplifylibcalls to use the same routine later.
llvm-svn: 50408
|
| |
|
|
|
|
|
|
|
| |
appropriate alignment. This fixes a miscompilation of 252.eon on
x86-64 (rdar://5891920).
Bill, please pull this into Tak.
llvm-svn: 50308
|