| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
instead of init'ing it maximally to zeros on entry. getFreePhysReg
is pretty hot and only a few elements are typically used. This speeds
up linscan by 5% on 176.gcc.
llvm-svn: 47631
|
| |
|
|
|
|
|
| |
Before it was the negation of hasAutoStorage(), which is incorrect.
"Register" storage for Decls do not indicate global variables.
llvm-svn: 47630
|
| |
|
|
| |
llvm-svn: 47629
|
| |
|
|
| |
llvm-svn: 47628
|
| |
|
|
|
|
|
|
|
|
|
| |
void g() {
static char a[10];
static char *b = a;
}
Now we can compile wget!
llvm-svn: 47627
|
| |
|
|
|
|
|
| |
Use custom diagnostics for static analysis checkers. Added warnings
for dereferencing uninitialized values and divide-by-zeroes.
llvm-svn: 47626
|
| |
|
|
|
|
| |
would have been a Godsend here!
llvm-svn: 47625
|
| |
|
|
|
|
|
|
|
| |
in an EnumConstantDecl. This was made possible because of a recent fix
in the parser:
http://llvm.org/viewvc/llvm-project?rev=47581&view=rev
llvm-svn: 47624
|
| |
|
|
| |
llvm-svn: 47623
|
| |
|
|
|
|
| |
question mark if it is around.
llvm-svn: 47622
|
| |
|
|
|
|
| |
llvm/tools/Makefile, so no one will build it be default yet
llvm-svn: 47621
|
| |
|
|
| |
llvm-svn: 47620
|
| |
|
|
| |
llvm-svn: 47619
|
| |
|
|
| |
llvm-svn: 47618
|
| |
|
|
|
|
| |
CharacterLiteral expressions.
llvm-svn: 47617
|
| |
|
|
| |
llvm-svn: 47616
|
| |
|
|
| |
llvm-svn: 47615
|
| |
|
|
|
|
| |
Simplify getReturnValue()
llvm-svn: 47614
|
| |
|
|
|
|
|
|
| |
now store in the state essentially which branch we took. This removes
a bunch of bogus assumptions (and likely bugs), reduces the complexity of
the implementation, and facilitates more optimizations.
llvm-svn: 47613
|
| |
|
|
| |
llvm-svn: 47612
|
| |
|
|
| |
llvm-svn: 47611
|
| |
|
|
|
|
| |
try to simplify them.
llvm-svn: 47610
|
| |
|
|
| |
llvm-svn: 47609
|
| |
|
|
| |
llvm-svn: 47608
|
| |
|
|
| |
llvm-svn: 47607
|
| |
|
|
| |
llvm-svn: 47606
|
| |
|
|
|
|
| |
also fixes cfrac, flops, and 175.vpr
llvm-svn: 47605
|
| |
|
|
|
|
| |
fixes the hangs seen on solaris10.
llvm-svn: 47604
|
| |
|
|
|
|
|
| |
by supplying a dummy
"verbose" procedure
llvm-svn: 47603
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(on solaris10, which are:
CodeGen/PowerPC/frounds.ll
Transforms/InstCombine/2008-02-23-MulSub.ll)
I needed a tool to figure out which one is the guilty.
To this end I have added a verbosity
option to the test/Makefile.
It can be invoked thus:
gmake check TESTSUITE=CodeGen/PowerPC VERBOSE="-v -v"
(The number of "-v"s specifies the verbosity level.
Instead of "-v" other aliases can be specified,
please consult the dejagnu docs for info.)
At level >= 2 following line is logged for each
test, before running it:
ABOUT TO RUN: <test>.ll
llvm-svn: 47602
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CodeGen/PowerPC/illegal-element-type.ll): suppose
a node X is processed, and processing maps it to
a node Y. Then X continues to exist in the DAG,
but with no users. While processing some other
node, a new node may be created that happens to
be equal to X, and thus X will be reused rather
than a truly new node. This can cause X to
"magically reappear", and since it is in the
Processed state in will not be reprocessed, so
at the end of type legalization the illegal node
X can still be present. The solution is to replace
X with Y whenever X gets resurrected like this.
llvm-svn: 47601
|
| |
|
|
| |
llvm-svn: 47600
|
| |
|
|
| |
llvm-svn: 47599
|
| |
|
|
| |
llvm-svn: 47598
|
| |
|
|
| |
llvm-svn: 47597
|
| |
|
|
| |
llvm-svn: 47596
|
| |
|
|
| |
llvm-svn: 47595
|
| |
|
|
|
|
|
|
| |
GOT-style position independent code. Before only tail calls to
protected/hidden functions within the same module were optimized.
Now all function calls are tail call optimized.
llvm-svn: 47594
|
| |
|
|
|
|
|
|
|
|
|
|
| |
calls. Before arguments that could overwrite each other were
explicitly lowered to a stack slot, not giving the register allocator
a chance to optimize. Now a sequence of copyto/copyfrom virtual
registers ensures that arguments are loaded in (virtual) registers
before they are lowered to the stack slot (and might overwrite each
other). Also parameter stack slots are marked mutable for
(potentially) tail calling functions.
llvm-svn: 47593
|
| |
|
|
|
|
|
|
|
| |
vr1 = extract_subreg vr2, 3
...
vr3 = extract_subreg vr1, 2
The end result is vr3 is equal to vr2 with subidx 2.
llvm-svn: 47592
|
| |
|
|
|
|
|
|
|
| |
after legalize. Just because a constant is legal (e.g. 0.0 in SSE)
doesn't mean that its negated value is legal (-0.0). We could make
this stronger by checking to see if the negated constant is actually
legal post negation, but it doesn't seem like a big deal.
llvm-svn: 47591
|
| |
|
|
| |
llvm-svn: 47590
|
| |
|
|
|
|
| |
operands into inline asm block.
llvm-svn: 47589
|
| |
|
|
| |
llvm-svn: 47588
|
| |
|
|
| |
llvm-svn: 47587
|
| |
|
|
|
|
| |
Added recording of divide-by-zero and divide-by-uninitialized nodes.
llvm-svn: 47586
|
| |
|
|
| |
llvm-svn: 47585
|
| |
|
|
| |
llvm-svn: 47584
|
| |
|
|
|
|
| |
Take 2.
llvm-svn: 47583
|
| |
|
|
|
|
| |
Patch by Mike Stump!
llvm-svn: 47582
|