| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 28567
|
| |
|
|
| |
llvm-svn: 28566
|
| |
|
|
| |
llvm-svn: 28565
|
| |
|
|
| |
llvm-svn: 28564
|
| |
|
|
| |
llvm-svn: 28563
|
| |
|
|
|
|
|
|
| |
string. Instead of specifying the length, just specify whether the user
wants a terminating null or not. The default is "true" to retain the same
behavior as previously provided by this function.
llvm-svn: 28562
|
| |
|
|
|
|
| |
latency targets, e.g. PPC32.
llvm-svn: 28561
|
| |
|
|
|
|
| |
non-deterministic. Returns NULL when it's empty!
llvm-svn: 28560
|
| |
|
|
| |
llvm-svn: 28559
|
| |
|
|
| |
llvm-svn: 28558
|
| |
|
|
|
|
|
| |
stdout when the output of llvm-as is also written to stdout. We'll have to
fix tcl some other way.
llvm-svn: 28557
|
| |
|
|
|
|
|
| |
Tcl to claim that the program had an error and thus produces errors in
the dejagnu testing when its really just a warning.
llvm-svn: 28556
|
| |
|
|
| |
llvm-svn: 28555
|
| |
|
|
|
|
|
| |
everything except PHI nodes and one odd recurse/opaque type situation.
PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :)
llvm-svn: 28554
|
| |
|
|
| |
llvm-svn: 28553
|
| |
|
|
|
|
|
|
|
| |
implementation always added a null byte to the end of the string. It turns
out that this is not always wanted. By adding a length parameter we preserve
this behavior when length==0 (default value) but also allow other lengths
(not null terminated) to be created.
llvm-svn: 28552
|
| |
|
|
| |
llvm-svn: 28551
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fold c2 in (x << c1) | c2 where (c2 < c1)
e.g.
int test(int x) {
return (x << 3) + 7;
}
This can be codegen'd as:
leal 7(,%eax,8), %eax
llvm-svn: 28550
|
| |
|
|
| |
llvm-svn: 28549
|
| |
|
|
| |
llvm-svn: 28548
|
| |
|
|
|
|
| |
tests. The output in a few cases still doesn't compile, however.
llvm-svn: 28547
|
| |
|
|
| |
llvm-svn: 28546
|
| |
|
|
|
|
|
|
| |
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
llvm-svn: 28545
|
| |
|
|
| |
llvm-svn: 28544
|
| |
|
|
| |
llvm-svn: 28543
|
| |
|
|
| |
llvm-svn: 28542
|
| |
|
|
|
|
|
|
|
|
| |
1. Get rid of old AsmWriter cruft that's not needed.
2. Implement several instructions. Enough to get by globalvars.ll and
alignment.ll in the Feature test suite.
3. Handle constants properly (don't repeat definitions).
4. Make the output compatible with llvm-dis for diff purposes.
llvm-svn: 28541
|
| |
|
|
| |
llvm-svn: 28540
|
| |
|
|
| |
llvm-svn: 28539
|
| |
|
|
| |
llvm-svn: 28538
|
| |
|
|
| |
llvm-svn: 28537
|
| |
|
|
|
|
|
| |
1. Return the module from the MakeModule function so it can be verified.
2. Make sure types get generated with their names
llvm-svn: 28536
|
| |
|
|
| |
llvm-svn: 28535
|
| |
|
|
| |
llvm-svn: 28534
|
| |
|
|
| |
llvm-svn: 28533
|
| |
|
|
| |
llvm-svn: 28532
|
| |
|
|
| |
llvm-svn: 28531
|
| |
|
|
| |
llvm-svn: 28530
|
| |
|
|
|
|
|
| |
is now theoretically feature-complete. It has not, however, been thoroughly
test, and is still considered experimental.
llvm-svn: 28529
|
| |
|
|
|
|
|
|
| |
This is a safekeeping commit. The program is not finished. It currently
handles modules, types, global variables and function declarations. Blocks
and instructions remain to be done.
llvm-svn: 28528
|
| |
|
|
|
|
|
| |
other calculations on each individually, rather than trying to delay it and do
them all at the end.
llvm-svn: 28527
|
| |
|
|
|
|
| |
"libdir" for some reason. Changing to llvmlibsdir instead fixes it.
llvm-svn: 28526
|
| |
|
|
|
|
|
|
| |
committed). This infrastructure is only activated when RUNLLVM2CPP=1 is
specified on the make command line. Currently it is only supported in the
Feature test suite.
llvm-svn: 28525
|
| |
|
|
|
|
|
|
| |
the iterated Dominance Frontier of the loop-closure Phi's. This is the
second phase of the LCSSA pass. The third phase (coming soon) will be to
update all uses of loop variables to use the loop-closure Phi's instead.
llvm-svn: 28524
|
| |
|
|
|
|
| |
ldecod, lencod, and SPASS.
llvm-svn: 28523
|
| |
|
|
| |
llvm-svn: 28522
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
makes it so that it constant folds instructions on the fly. This is good
for several reasons:
0. Many instructions are constant foldable after inlining, particularly if
inlining a call with constant arguments.
1. Without this, the inliner has to allocate memory for all of the instructions
that can be constant folded, then a subsequent pass has to delete them. This
gets the job done without this extra work.
2. This makes the inliner *pass* a bit more aggressive: in particular, it
partially solves a phase order issue where the inliner would inline lots
of code that folds away to nothing, but think that the resultant function
is big because of this code that will be gone. Now the code never exists.
This is the first part of a 2-step process. The second part will be smart
enough to see when this implicit constant folding propagates a constant into
a branch or switch instruction, making CFG edges dead.
This implements Transforms/Inline/inline_constprop.ll
llvm-svn: 28521
|
| |
|
|
| |
llvm-svn: 28520
|
| |
|
|
| |
llvm-svn: 28519
|
| |
|
|
| |
llvm-svn: 28518
|