Nadav Rotem
8ff00989fc
Stack coloring: remove lifetime intervals which contain escaped allocas.
...
The input program may contain intructions which are not inside lifetime
markers. This can happen due to a bug in the compiler or due to a bug in
user code (for example, returning a reference to a local variable).
This commit adds checks that all of the instructions in the function and
invalidates lifetime ranges which do not contain all of the instructions.
llvm-svn: 163678
2012-09-12 04:57:37 +00:00
Nadav Rotem
42b641c879
Dragonegg selfhost exposed additional cases where alloca usage moved outside of lifetime markers. Disabling the pass for now.
...
llvm-svn: 163623
2012-09-11 15:40:27 +00:00
Nadav Rotem
4464613ceb
Enable stack coloring.
...
llvm-svn: 163617
2012-09-11 13:48:35 +00:00
Nadav Rotem
65ba95ebf9
Stack Coloring: Dont crash on dbg values which use stack frames.
...
llvm-svn: 163616
2012-09-11 12:34:27 +00:00
Dmitri Gribenko
ca1e27be0d
Remove redundant semicolons which are null statements.
...
llvm-svn: 163547
2012-09-10 21:26:47 +00:00
Nadav Rotem
5a72a23a70
Disable stack coloring because it makes dragonegg fail bootstrapping.
...
llvm-svn: 163545
2012-09-10 21:17:58 +00:00
Nadav Rotem
107faf853b
Enable stack coloring.
...
llvm-svn: 163539
2012-09-10 20:15:49 +00:00
Nadav Rotem
3c86b78ae4
Stack Coloring: Handle the case where END markers come before BEGIN markers properly.
...
llvm-svn: 163530
2012-09-10 18:51:09 +00:00
Nadav Rotem
ba9a03f279
Minor cleanup. No functional change.
...
llvm-svn: 163510
2012-09-10 13:20:00 +00:00
Nadav Rotem
d62287dc91
Stack Coloring: Debug prints to print the slot number and not the array index.
...
llvm-svn: 163509
2012-09-10 13:17:58 +00:00
Nadav Rotem
ed242a0f1c
Stack Coloring: When searching for disjoint regions, do not compare intervals twice or to theirself.
...
llvm-svn: 163508
2012-09-10 12:47:38 +00:00
Nadav Rotem
6731363185
Stack Coloring: Add support for multiple regions of the same slot, within a single basic block.
...
llvm-svn: 163507
2012-09-10 12:39:35 +00:00
Nadav Rotem
2f41ff93e6
Fix a typo in the comment.
...
llvm-svn: 163496
2012-09-10 08:51:46 +00:00
Nadav Rotem
28e6f8c1fc
Add an assertion that the frame index is indeed inside the declared lifetime region.
...
llvm-svn: 163495
2012-09-10 08:44:15 +00:00
Roman Divacky
4717a8d654
Dont cast away const needlessly. Found by gcc48 -Wcast-qual.
...
llvm-svn: 163324
2012-09-06 15:42:13 +00:00
Nadav Rotem
9e3cc9f884
Disable stack coloring by default in order to resolve the i386 failures.
...
llvm-svn: 163316
2012-09-06 14:27:06 +00:00
Nadav Rotem
7c277da364
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be
...
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics).
llvm-svn: 163299
2012-09-06 09:17:37 +00:00