Commit Graph

15464 Commits

Author SHA1 Message Date
Chris Lattner
1840f3ce7f Add an accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17865 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15 23:20:19 +00:00
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