| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
default to verbose.
llvm-svn: 67668
|
|
|
|
|
|
| |
AnalyzeBrnach bug are fixed.
llvm-svn: 64126
|
|
|
|
| |
llvm-svn: 64062
|
|
|
|
| |
llvm-svn: 63999
|
|
|
|
| |
llvm-svn: 63855
|
|
|
|
|
|
|
| |
folding's tail merging doesn't currently preserve liveness information
which post-RA scheduling requires.
llvm-svn: 61183
|
|
|
|
|
|
| |
obscure tail-merging opportunities.
llvm-svn: 59967
|
|
|
|
| |
llvm-svn: 59746
|
|
|
|
| |
llvm-svn: 59202
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use enums instead of magic numbers.
- Rework algorithm to use the bytes size from the target to determine when to
emit stack protectors.
- Get rid of "propolice" in any comments.
- Renamed an option to its expanded form.
- Other miscellanenous changes.
More changes will come after this.
llvm-svn: 58723
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The prologue is modified to read the __stack_chk_guard global and insert it
onto the stack.
* The epilogue is modified to read the stored guard from the stack and compare
it to the original __stack_chk_guard value. If they differ, then the
__stack_chk_fail() function is called.
* The stack protector needs to be first on the stack (after the parameters) to
catch any stack-smashing activities.
Front-end support will follow after a round of beta testing.
llvm-svn: 58673
|
|
|
|
|
|
|
|
|
|
|
|
| |
target-independent code to target-specific code. This prevents it
from running on targets that aren't using fast-isel.
In addition to saving compile time, this addresses the problem
that not all targets are prepared for it. In order to use this
pass, all instructions must declare all their fixed uses and
defs of physical registers.
llvm-svn: 58144
|
|
|
|
| |
llvm-svn: 57946
|
|
|
|
|
|
|
| |
createPrintModulePass and createPrintFunctionPass.
- So clients who compile w/o RTTI can use them.
llvm-svn: 57933
|
|
|
|
|
|
|
|
|
|
| |
instead.
So now: -fast-isel or -fast-isel=true enable fast-isel, and
-fast-isel=false disables it. Fast-isel is also on by default
with -fast, and off by default otherwise.
llvm-svn: 57270
|
|
|
|
| |
llvm-svn: 56937
|
|
|
|
| |
llvm-svn: 56930
|
|
|
|
| |
llvm-svn: 56604
|
|
|
|
|
|
|
| |
a separate function, eliminating duplication between the
add-passes-for-file and add-passes-for-machine-code code.
llvm-svn: 56599
|
|
|
|
| |
llvm-svn: 55092
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, Collector was confusing to implementors. Several
thought that this compile-time class was the place to implement
their runtime GC heap. Of course, it doesn't even exist at runtime.
Specifically, the renames are:
Collector -> GCStrategy
CollectorMetadata -> GCFunctionInfo
CollectorModuleMetadata -> GCModuleInfo
CollectorRegistry -> GCRegistry
Function::getCollector -> getGC (setGC, hasGC, clearGC)
Several accessors and nested types have also been renamed to be
consistent. These changes should be obvious.
llvm-svn: 54899
|
|
|
|
|
|
| |
for splitting AsmPrinter into its own library.
llvm-svn: 54881
|
|
|
|
| |
llvm-svn: 52933
|
|
|
|
| |
llvm-svn: 52057
|
|
|
|
| |
llvm-svn: 51953
|
|
|
|
| |
llvm-svn: 51934
|
|
|
|
| |
llvm-svn: 51898
|
|
|
|
| |
llvm-svn: 51793
|
|
|
|
| |
llvm-svn: 50173
|
|
|
|
| |
llvm-svn: 50165
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
review feedback.
-enable-eh is still accepted but doesn't do anything.
EH intrinsics use Dwarf EH if the target supports that,
and are handled by LowerInvoke otherwise.
The separation of the EH table and frame move data is,
I think, logically figured out, but either one still
causes full EH info to be generated (not sure how to
split the metadata correctly).
MachineModuleInfo::needsFrameInfo is no longer used and
is removed.
llvm-svn: 49064
|
|
|
|
| |
llvm-svn: 49046
|
|
|
|
|
|
|
|
|
|
|
| |
not marked nounwind, or for all functions when -enable-eh
is set, provided the target supports Dwarf EH.
llvm-gcc generates nounwind in the right places; other FEs
will need to do so also. Given such a FE, -enable-eh should
no longer be needed.
llvm-svn: 49006
|
|
|
|
| |
llvm-svn: 48797
|
|
|
|
| |
llvm-svn: 48794
|
|
|
|
|
|
|
|
| |
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
llvm-svn: 48256
|
|
|
|
| |
llvm-svn: 47736
|
|
|
|
| |
llvm-svn: 47079
|
|
|
|
| |
llvm-svn: 45972
|
|
|
|
| |
llvm-svn: 45671
|
|
|
|
| |
llvm-svn: 45624
|
|
|
|
| |
llvm-svn: 45572
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--enable-sinking.
It is missing validity checks, so it is known broken. However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
double Tmp = A*A+B*B;
*P = C ? Tmp : A;
}
into:
_test1:
movsd 8(%esp), %xmm0
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movsd 16(%esp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm0, (%eax)
ret
instead of:
_test1:
movsd 16(%esp), %xmm0
mulsd %xmm0, %xmm0
movsd 8(%esp), %xmm1
movapd %xmm1, %xmm2
mulsd %xmm2, %xmm2
addsd %xmm0, %xmm2
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movapd %xmm2, %xmm1
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm1, (%eax)
ret
woo.
llvm-svn: 45570
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_foo:
li r2, 0
LBB1_1: ; bb
li r5, 0
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
to:
_foo:
li r2, 0
li r5, 0
LBB1_1: ; bb
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687
|
|
|
|
| |
llvm-svn: 40548
|
|
|
|
|
|
| |
subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions.
llvm-svn: 40521
|
|
|
|
| |
llvm-svn: 40123
|
|
|
|
| |
llvm-svn: 39817
|
|
|
|
|
|
|
| |
Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
llvm-svn: 39816
|