Chris Lattner
bfd3e52701
Do not compute the predecessor list for a block unless we need it.
...
This speeds up simplifycfg on this program, from 44.87s to 0.29s (with
a profiled build):
#define CL0(a) case a: goto c;
#define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \
CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9)
#define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \
CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9)
#define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \
CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9)
#define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \
CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9)
void f();
void a() {
int b;
c: switch (b) {
CL4(1)
}
}
This testcase is contrived to expose N^2 behavior, but this patch should speedup
simplifycfg on any programs that use large switch statements. This testcase
comes from GCC PR17895.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17389 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 06:53:58 +00:00
Chris Lattner
e4cb90f41c
When compiling a file, indicate what build it is for
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17388 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 06:14:59 +00:00
Chris Lattner
31d3f671be
* Do not refer to ActualCallees in CBU, when we can do it locally.
...
* *DO NOT* print CBU graphs when asked to print our own. This is just
FREAKING confusing and misleading: it's better to not print anything.
* Simplify and clean up some code
* Add some more paranoia assertion checking code that I found to track
down this bug:
* Fix a nasty bug that was causing us to crash on Prolangs-C++/objects,
where we were missing processing some graphs. This hunk is the bugfix:
- if (!I->isExternal() && !FoldedGraphsMap.count(I))
+ if (!I->isExternal() && !ValMap.count(I))
urg!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17386 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:41:26 +00:00
Reid Spencer
4148266c9d
Wrap to 80 cols
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17385 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:24:31 +00:00
Reid Spencer
0a727fc729
Add UsingLibraries.html link.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17384 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:02:38 +00:00
Chris Lattner
4bbf3dfbe6
Simplify graph traversal, improve grammar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:01:34 +00:00
Reid Spencer
448a4afd2e
Give table headers the striped background.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17382 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:01:02 +00:00
Reid Spencer
341d7141ed
* Moved from ObjectFiles.html
...
* Changed names of libraries to reflect new naming scheme
* Added some more introductory material
* Added a rule of thumb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17381 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:00:25 +00:00
Reid Spencer
9113b98f6d
Renamed UsingLibraries.html
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17380 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 22:59:06 +00:00
Reid Spencer
8dce0ad40e
Get the shared library extension right on all platforms, regardless of what
...
Chris wants on his platform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17379 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 22:53:06 +00:00
Chris Lattner
ab8544aa75
Do not do horrible things to the CBU graphs. In particular, we do NOT own
...
the CBU graphs, copy them instead of hacking on the CBU graphs.
Also, instead of forwarding request from ECGraphs clients to the CBU graphs
clients, service them ourselves.
Finally, remove a broken "optimization"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 21:56:11 +00:00
Chris Lattner
3b7b81b814
Fix comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17377 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 21:54:51 +00:00
Reid Spencer
2e6e8e5862
Fix output for building shared libraries per Chris' requirements
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17376 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 21:07:34 +00:00
Chris Lattner
e84c23e0c1
Improve comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17375 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 19:57:43 +00:00
Reid Spencer
8676b7eed0
Actually use the correct variable name for building bytecode files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17374 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 18:52:15 +00:00
Reid Spencer
e1907865b8
Add the preconditions target per suggestion by Henrik Bach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17373 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 18:50:34 +00:00
Chris Lattner
f498568240
Fix another bug in Prolangs-C++/objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17372 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 18:13:19 +00:00
Reid Spencer
15e4f7430c
One more missing end tag.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17371 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:58:58 +00:00
Reid Spencer
0b166c442b
Correct tag usage for HTML 4.01 Strict compliance
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17370 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:56:50 +00:00
Reid Spencer
2734bf754a
Add a tutorial and some more general concepts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17369 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:51:38 +00:00
Chris Lattner
113cde8685
Only call getNodeForValue on pointer arguments! this fixes a problem running
...
on Prolangs-C++/objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17368 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:47:48 +00:00
Chris Lattner
7d8d4711d9
Add more paranoid assertions :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17367 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:45:40 +00:00
Misha Brukman
4ad0b11b95
No, really, the library name is `LLVMexecve'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17366 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 17:30:52 +00:00
Vikram S. Adve
ab9ef2ae84
Fix patterns to match only one-char words.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17365 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 23:11:26 +00:00
Reid Spencer
a07e0b5e18
Add a few more terms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17364 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 21:40:28 +00:00
Reid Spencer
a79e58c22e
Complete the description of public variables. Internal variables are listed
...
but not described. It might just stay that way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17363 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 21:39:42 +00:00
Reid Spencer
a98e7b5e75
Change macro names per naming standard in Makefile.rules.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 09:26:22 +00:00
Reid Spencer
3abd4974ba
Correct macro names per naming standard in Makefile.rules
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17360 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 09:25:27 +00:00
Reid Spencer
cc2d1e25f3
Internalize variable names to prevent recursive assignment. Cleanup docs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17359 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 09:19:36 +00:00
Chris Lattner
f1bd4b4215
Fix some more problems where we called getOffset before getNode()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17358 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 07:21:19 +00:00
Chris Lattner
857eb0697f
Fix three bugs:
...
1. Calls to external global VARIABLES should not be treated as a call to an
external function
2. Efficiently deleting an element from a vector by using std::swap with
the back, then pop_back is NOT a good way to keep the vector sorted.
3. Our hope of having stuff get deleted by making them redundant just won't
work. In particular, if we have three calls in sequence that should be
merged: A, B, C first we unify B into A. To be sure that they appeared
identical (so B would be erased) we set B = A. On the next step, we
unified C into A and set C = A. Unfortunately, this is no guarantee that
C = B, so we would fail to delete the dead call. Switch to a more
explicit scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17357 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 05:41:23 +00:00
Chris Lattner
62c3a95051
Fix more undefined behavior
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 04:22:45 +00:00
Chris Lattner
6f96774fc4
* Add a method
...
* change some uses of NH.getNode() in a bool context to use !NH.isNull()
* Fix a bunch of places where we depended on the (undefined) order of
evaluation of arguments to function calls to ensure that getNode() was
called before getOffset(). In practice, this was NOT happening.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 04:05:01 +00:00
Chris Lattner
5b3ed508f6
Add an assertion and a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17353 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 04:03:47 +00:00
Chris Lattner
c74ea9f3b0
No really, this is LLVM!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17352 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 00:57:52 +00:00
Tanya Lattner
260652a7af
Fixed bug with infinite epilogues.
...
Fixed issue with generating the partial order. It now adds the nodes not in recurrences in sets for each connected component.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17351 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 00:39:07 +00:00
Misha Brukman
b1883932c7
Fix file header comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17350 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 23:26:09 +00:00
Misha Brukman
9437db4e78
* Fix compilation on AIX: GCC's fixincludes eliminates isinf() declaration
...
* Move file comment to the top of the header where it belongs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17349 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 23:17:45 +00:00
Reid Spencer
7614e5130b
Don't modify user vars because they will get passed down (modified) to
...
sub-makes and recursively append causing huge command lines and incorrect
compilation results.
Also, fix the printvars target to align its output and ensure that the
contents of variables can't get interpreted by the shell.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17348 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 22:14:56 +00:00
Brian Gaeke
b982c42e65
Change name of target lib to conform to new naming scheme.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17347 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 21:57:16 +00:00
Brian Gaeke
b13fac70ca
Remove dependency on MRegisterInfo::getRegClass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17346 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 21:42:27 +00:00
Misha Brukman
717582290f
Fix grammar (i.e.)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17343 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 19:20:42 +00:00
Reid Spencer
bdfefc9c26
Disable the build in the samples directory so that llvmc dependencies don't
...
mess up the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17342 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 18:43:49 +00:00
Misha Brukman
1b0d4f310b
The Alpha (tm) intrinsics aren't even being used
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17341 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 18:43:43 +00:00
Misha Brukman
e7a3f3e728
The Alpha (tm) intrinsics have never been used anywhere
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17340 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 18:43:17 +00:00
Misha Brukman
a6ad12d4fa
LLEE execve() wrapper library has changed its name and location
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17339 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 18:36:51 +00:00
Brian Gaeke
88560c3a42
When emitting debug msgs for function stubs, don't truncate the
...
printed pointer value if sizeof(unsigned) != pointer size. Instead,
use uintptr_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17338 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 18:22:45 +00:00
Vikram S. Adve
65dea6e136
Print P and [AR] files on update.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17337 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 17:43:19 +00:00
Reid Spencer
6e039e5616
Make sure the LLVM_CONFIG_DIR environment variable is set so we don't get
...
error messages from the compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17335 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 06:42:38 +00:00
Reid Spencer
85ec003b1d
Make the list of automatic Makefile* files updated explicit instead of
...
generally wildcarded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17334 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-29 04:47:33 +00:00