Commit Graph

3670 Commits

Author SHA1 Message Date
Vikram S. Adve
d55697cf13 Added class MachineOptInfo as interface to target-specific
routines supporting machine code optimization.
Also added method MachineInstrInfo::getNOPOpCode().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3845 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:52:09 +00:00
Vikram S. Adve
2542d9a183 Interface to target-specific routines that support machine code optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3844 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:49:21 +00:00
Vikram S. Adve
e8b57ef260 Add method MachineInstr::replace to rewrite a machine instruction in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:47:49 +00:00
Vikram S. Adve
32f81a3469 Allow copy coalescing in more cases: if sum of node degrees is more than
than #available regs, compute the sum excluding duplicates and if that
is less than #regs, go ahead and coalesce.
Add method IGNode::getCombinedDegree to count excluding duplicates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3842 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:45:47 +00:00
Vikram S. Adve
dcde9bd285 Renamed library preselect to preopts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3841 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:43:20 +00:00
Vikram S. Adve
25d80cdcc6 Peephole optimization pass on final machine code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3840 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:42:11 +00:00
Vikram S. Adve
fafda59f08 Files moved to CodeGen/PreOpts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3839 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:30:46 +00:00
Vikram S. Adve
abf055c698 Moving these files from Code/PreSelection to here.
Original logs for PreSelection.cpp:

  revision 1.2
  date: 2002/09/17 23:50:32;  author: lattner;  state: Exp;  lines: +1 -3
  Don't put default parameter values into .cpp files, it breaks 3.x compilers

  revision 1.1
  date: 2002/09/16 15:31:13;  author: vadve;  state: Exp;
  New preselection pass that specializes LLVM code for a target machine,
  while remaining in legal portable LLVM form and preserving type
  information and type safety.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3838 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:29:28 +00:00
Chris Lattner
3aaff7eebd Reenable these options because they break testing on sparc without them.
Conditionalizing them on DISABLE_LLC means they aren't enabled under linux.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3837 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 21:46:03 +00:00
Chris Lattner
2ad319c3ba Native CC compiler has the same problem as CXX compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3836 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 21:33:10 +00:00
Chris Lattner
698a131364 Don't run llc tests on linux, they won't work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3835 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 21:32:44 +00:00
Chris Lattner
fd479b6fd4 Workaround for bug in GCC 3.1.1 iostreams library on sparc. It apprarently
isn't flushing an ostream when it is deleted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3834 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 20:49:25 +00:00
Chris Lattner
b4ee4f935e Minor non-functionality changing changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3833 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 20:48:48 +00:00
Chris Lattner
e2b5485aed Reorder options to be sorted basically by how important they are.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3832 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:59:42 +00:00
Chris Lattner
4b2e291ce2 * Burg is no longer configured in Makefile.config
* CXX now is configured in Makefile.config (optionally)
* The GCC command is now no longer bin/gcc, it's bin/llvm-gcc
* Minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3831 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:56:53 +00:00
Chris Lattner
7f666ca429 Platform specific makefiles specify where to find the GCC frontend for their
architecture.  The location of the GCC frontend may be overridden by the
Makefile.config file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3830 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:44:28 +00:00
Chris Lattner
4512f33b10 * Move the burg option into Makefile.common, since it is no longer configurable
* Makefile.config now should only specify the location of the gcc frontend if it
  is not in the place specified by the platform makefile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3829 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:43:29 +00:00
Chris Lattner
9b94701fdf Move the burg option out of Makefile.config into Makefile.common since
it no longer needs to be configured.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3828 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:42:24 +00:00
Chris Lattner
90c7d67b9d Point gccld to the correct library directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3827 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:22:30 +00:00
Chris Lattner
3f6962e088 Add an optimization to support the most common access pattern for the
library.  This speeds debug builds up significantly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3826 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:22:11 +00:00
Chris Lattner
5542b9f880 Switch over to using the x86 version of the C frontend, by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3825 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:21:18 +00:00
Chris Lattner
ecd3546ff6 It turns out that the cannonical name for the llvm-gcc compiler is, well
llvm-gcc, not gcc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3824 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 19:06:05 +00:00
Vikram S. Adve
c63ffc54e5 Avoid Solaris-specific defines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3823 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 18:45:11 +00:00
Chris Lattner
dfd621f3fc New testcase that breaks the CFE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3821 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 16:54:57 +00:00
Chris Lattner
3e1f144a1d Make sure that we abort if an error happens as early as neccesary. Before
it was possible for the passmanager to continue running passes after the
verifier even if the module was not well formed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3820 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 16:12:19 +00:00
Chris Lattner
0f82df410c Indent a comment right, add a new one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3819 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 16:06:28 +00:00
Vikram S. Adve
39c36e868d Add support for passing in arbitrary flags to gmake (except -n and -h
which are interpreted by this script).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3818 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 14:54:53 +00:00
Chris Lattner
75fb432dcb New testcase for a bug fixed in the GCC SSA construction algorithm:
http://gcc.gnu.org/ml/gcc/2002-09/msg00760.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3817 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 04:23:59 +00:00
Chris Lattner
d14d37614b Avoid deleting the ostream more than once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3816 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 23:30:05 +00:00
Vikram S. Adve
d3448cd7a6 Fix to work in new location (utils/) and to use gmake instead of gnumake
since gnumake doesn't exist on our new spiffy Linux machines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3815 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 23:22:27 +00:00
Chris Lattner
66c1ab8d76 Change Makefile.config to support building on the group's linux machines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3814 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 19:32:17 +00:00
Vikram S. Adve
2f0a51c419 KEEP_SYMBOLS by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3813 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 11:55:44 +00:00
Vikram S. Adve
feeae58705 Strip tools/Debug/ executables by default. Define KEEP_SYMBOLS to
turn off stripping for any executable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3812 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 11:55:13 +00:00
Chris Lattner
7dbf6836bf Clean up tags, link to the right .h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3811 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 05:14:25 +00:00
Anand Shukla
7c7a07e501 corrected small bug, to handle when DIRS is not defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3810 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 04:29:30 +00:00
Anand Shukla
6689b06697 split retracing into a separate file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3809 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 03:55:26 +00:00
Chris Lattner
ec9962e44a Compile sub-directories in parallel, because they don't have interdependencies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3808 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 03:25:58 +00:00
Chris Lattner
a8abc228ba Add support for the new PARALLEL_DIRS option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3807 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 03:22:27 +00:00
Joel Stanley
9dd1ad62ab Finished instruction replacement section, etc. Need better example for replaceAllUsesWith().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3806 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 03:17:23 +00:00
Misha Brukman
e6fe6713da Fixed grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3805 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:35:14 +00:00
Misha Brukman
c4f5bb0fde Fixed grammar (User's -> Users).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3804 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:21:57 +00:00
Vikram S. Adve
0a4aa5a026 gcc3.1.1 seems much more selective about what it loads from archives, and
does not link in many passes that are loaded by gcc2.95.3.  So use object
files instead of archives in many more cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3803 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:20:58 +00:00
Misha Brukman
bfb472447e Removed unnecessary #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3802 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:07:57 +00:00
Misha Brukman
5f41748e1a Fixed typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3801 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 00:42:45 +00:00
Chris Lattner
16ca2b991b Fix ambiguity problem due to builtin log2(double) function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3800 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:56:50 +00:00
Chris Lattner
5fda99744e Don't put default parameter values into .cpp files, it breaks 3.x compilers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3799 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:50:32 +00:00
Chris Lattner
ccec07a040 Fix namespace correctness bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3798 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:48:02 +00:00
Chris Lattner
cb16c65426 There is a #define in some header that conflicts with INFINITY, rename it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3797 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:46:33 +00:00
Chris Lattner
16d1f73cf3 Allow the VERBOSE=1 option to turn on output of recursive make behavior
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3796 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:45:34 +00:00
Chris Lattner
b430e0b33d Add support for gcc 3.2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3795 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 23:38:38 +00:00