Chris Lattner
02376e3f29
Now that we have ghost linkage, we can force resolution of external symbols
...
immediately instead of lazily.
In this program, for example:
int main() {
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
}
We used to have to go through compilation callback 4 times (once for each
call to printf), now we don't go to it at all.
Thanks to Misha for noticing this, and for adding the initial ghost linkage
patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17864 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 23:20:04 +00:00
Chris Lattner
0050ef8319
There is no reason to try to materialize the function from bytecode if it
...
already has been. This may be a small speedup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17863 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 23:18:09 +00:00
Chris Lattner
5aa3ed92de
Add debug-only=jit printout, so we see when lazily resolved symbols are
...
set up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17862 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 23:16:55 +00:00
Chris Lattner
36c625d3a5
Simplify and rearrange long shift code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17861 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 23:16:34 +00:00
Chris Lattner
ced6222bc5
Update to reflect recent change
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17860 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 22:54:50 +00:00
Chris Lattner
d6e431f45e
Do not emit FunctionBlock blocks for external functions. This shrinks
...
bytecode files by about 8 bytes per external function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17859 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 22:39:49 +00:00
Chris Lattner
97fbc500a7
Use a per-function flag bit to indicate whether or not there is a function
...
body for the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17858 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 22:38:52 +00:00
Chris Lattner
fd7f8fea65
Disable this change, it was premature
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17857 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:56:33 +00:00
Chris Lattner
3bdad6923e
Make *SURE* to null out the pointer before throwing an exception, otherwise
...
the dtor for the BytecodeReader class will try to free it again!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17856 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:55:33 +00:00
Chris Lattner
1992522abd
Cleanups. Null out pointer after freeing it for paranoia
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17855 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:55:06 +00:00
Chris Lattner
86c9365761
If a function is external, do not output a FunctionBlock for the function
...
AT ALL. This saves 11 bytes per external function from the bytecode file,
and is also required to make GhostLinkage work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17854 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:46:40 +00:00
Chris Lattner
18549c25d6
Make functions default to having external linkage if they have no
...
FunctionBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17853 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:43:03 +00:00
Reid Spencer
226b72672e
Remove useless/confusing namespace qualifier.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17852 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:27:05 +00:00
Misha Brukman
145a5a3746
Add BCTR and LWZU instruction opcodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17851 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:20:09 +00:00
Reid Spencer
748d82e730
Merge content of RequiredSoftware.html into GettingStarted.html
...
Remove now defunct RequiredSoftware.html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17850 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:15:12 +00:00
Misha Brukman
0011769ff6
* Add entry for Linux/PowerPC
...
* Mark MacOS X/PPC support as 32-bit-only
* Fix FreeBSD space usage -- it's in MB, not GB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17848 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 21:05:08 +00:00
Misha Brukman
b2cdcadac5
Be less verbose when The' and
command' just aren't necessary
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17846 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:39:30 +00:00
Misha Brukman
98fcc88bfa
No need for the verbose the llvm-link command' when simply
llvm-link' will do
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17845 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:36:39 +00:00
Misha Brukman
55157ff5c9
Force a short link to gccld's man page
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17844 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:32:58 +00:00
Misha Brukman
bae412a99e
Fix syntax within a B<> tag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17843 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:30:19 +00:00
Reid Spencer
bd26475204
Remove personal email address.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17842 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:25:08 +00:00
Misha Brukman
0d65a1fca3
Add the PowerPC 32-bit ABI output option
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:22:49 +00:00
Chris Lattner
998cd67d00
Bump version. Shouldn't this come from somewhere else??
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17839 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 20:06:11 +00:00
Misha Brukman
bbcb10f56e
* Add an entry for llvm-ranlib
...
* Add missing dashes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17838 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:53:43 +00:00
Misha Brukman
e2ca54f448
This is llvm-ar, not llvm-as.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:50:15 +00:00
Reid Spencer
f0f21fed9e
Remove reference to llvm-ld.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17836 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:47:20 +00:00
Reid Spencer
e8ae2d7155
Terminate a list.
...
Remove reference to llvm-ld
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17835 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:45:29 +00:00
Misha Brukman
f771bea740
Remove extra space char
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17834 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:30:05 +00:00
Tanya Lattner
d607491480
This file was originally developed by the LLVM research group so this comment should stay. I also do NOT want my name explicity listed on src files. I am already mentioned in the credits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17833 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:21:49 +00:00
Reid Spencer
bd33619bb8
Changes/corrections suggested from Chris Lattner's review.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17832 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:12:06 +00:00
Chris Lattner
c063502e32
Warning fixes for VC++, contributed by Morten Ofstad!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17831 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 19:02:35 +00:00
Reid Spencer
96326f9d31
Remove unused variable for compilation by VC++.
...
Patch contributed by Morten Ofstad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17830 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 17:29:41 +00:00
Reid Spencer
9befac48d7
Updates to Visual C++ project files for building on win32.
...
Patch contributed by Morten Ofstad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17829 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 17:28:08 +00:00
Reid Spencer
101142970b
Update relative files.
...
Patch contributed by Morten Ofstad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17828 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 17:27:00 +00:00
Reid Spencer
6b09db550f
Provide the ThrowErrno utility.
...
Patch contributed by Morten Ofstad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17827 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 17:21:57 +00:00
Reid Spencer
abc8650fc0
Adjust implementation to match new interface.
...
Patch provided by Morten Ofstad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17826 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 17:20:28 +00:00
Chris Lattner
14051812ff
Minor cleanups. There is no reason for SCCP to derive from instvisitor anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17825 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 07:15:04 +00:00
Chris Lattner
b77d5d8d50
Count more accurately
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17824 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 07:02:42 +00:00
Brian Gaeke
766d6f3b59
Update list of failing Benchmarks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17823 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:57:26 +00:00
Brian Gaeke
f28688e527
Expand Defs to encompass all the possibly-call-clobbered regs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17822 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:56:53 +00:00
Chris Lattner
50e60c7026
Quiet warnings on the persephone tester
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17821 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:54:07 +00:00
Chris Lattner
7e529e4b3c
Two minor improvements:
...
1. Speedup getValueState by having it not consider Arguments. It's better
to just add them before we start SCCP'ing.
2. SCCP can delete the contents of dead blocks. No really, it's ok! This
reduces the size of the IR for subsequent passes, even though
simplifycfg would do the same job. In practice, simplifycfg does not
run until much later than sccp in gccas
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17820 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:45:33 +00:00
Misha Brukman
14ab537b5a
Replace the textual description with table specifying disk space requirements
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17819 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:19:53 +00:00
Chris Lattner
ef36dfd31a
rename InstValue to LatticeValue, as it holds for more than instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17818 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 05:03:30 +00:00
Reid Spencer
a79a99a1dc
Actually get the #include correct so it compiles .. duh.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17817 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 04:47:22 +00:00
Chris Lattner
82bec2cff0
Substantially refactor the SCCP class into an SCCP pass and an SCCPSolver
...
class. The only changes are minor:
* Do not try to SCCP instructions that return void in the rewrite loop.
This is silly and fool hardy, wasting a map lookup and adding an entry
to the map which is never used.
* If we decide something has an undefined value, rewrite it to undef,
potentially leading to further simplications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17816 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 04:44:20 +00:00
Reid Spencer
2e83ea5211
Make it actually compile on Solaris.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17815 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 04:42:44 +00:00
Reid Spencer
e660bd7296
Consolidate the implementation of TimeValue::now() for Unix to use the
...
seemingly ubiquitous gettimeofday(3) call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17814 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 04:36:36 +00:00
Reid Spencer
00b5df427f
Consolidate the implementation of TimeValue::now() for Unix to use the
...
seemingly ubiquitous gettimeofday(3) call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17813 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 04:36:35 +00:00
Reid Spencer
b323113b93
* Make sure the string table gets read even if there isn't a foreign
...
symbol table.
* Make sure we update the file pointer for each member when rebuilding the
symbol table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17812 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 01:40:20 +00:00