Commit Graph

1831 Commits

Author SHA1 Message Date
Chris Lattner 50f08078e6 Fix test/Regression/Other/2002-03-21-LevelRaiseMiss.ll
llvm-svn: 1933
2002-03-21 21:21:13 +00:00
Chris Lattner 70b130f27b Testcase for a missed level raise opportunity
llvm-svn: 1932
2002-03-21 21:20:04 +00:00
Chris Lattner 06707765fa Make ConvertableToGEP handle cases where the user is indexing into the
first element of a structure type.  Before this would not be handled because
getStructOffset would either stop immediately (because StopEarly was true
and Offset = 0), or blast past the level we wanted.

Now ConvertableToGEP steps down through the type one level at a time, checking
the Offset and Scale conditions at each step

llvm-svn: 1931
2002-03-21 06:27:20 +00:00
Chris Lattner b874cd9560 Implement the new InsertInstBeforeInst function
llvm-svn: 1930
2002-03-21 06:24:00 +00:00
Chris Lattner 0d984ef719 Fix the: test/Regression/Other/2002-03-20-LevelRaiseCrash.ll bug. It turned
out that almost always the result of the add was the same as the GEP that
would be generated.  In this case, however, it wasn't, so bad things happened.

llvm-svn: 1929
2002-03-21 06:22:23 +00:00
Chris Lattner 261df367e0 Fix bug in testcase
llvm-svn: 1928
2002-03-21 06:19:43 +00:00
Chris Lattner 14d5ae1ac5 Declare the new InsertInstBeforeInst function
llvm-svn: 1927
2002-03-21 06:15:53 +00:00
Chris Lattner d1a7fe5062 Remove a misguided API extension
llvm-svn: 1926
2002-03-21 05:46:43 +00:00
Chris Lattner 8054a1cd14 New testcase for YALRB (yet another level raise bug)
llvm-svn: 1925
2002-03-21 05:39:20 +00:00
Chris Lattner 25c8f60b0a Add an assertion to catch a misuse of replaceAllUsesWith
llvm-svn: 1924
2002-03-21 05:38:15 +00:00
Chris Lattner 14bfd557f3 Checkin testcase that was just sitting in my tree. Looks like backreferences
have some problem in the parser, oh joy.

llvm-svn: 1923
2002-03-21 05:35:11 +00:00
Chris Lattner f6c6be2891 1. Fix bug test/Regression/Other/2002-03-20-LevelRaiseBadCodegen.ll
2. Allow negative scales in ConvertableToGEP, so that this loop from
   alloc_tree in the Olden health benchmark is correctly raised:

       for (i = 3; i >= 0; i--)
         fval[i] = alloc_tree(level - 1, label*4 + i + 1, new);

   Stepping through the array backwards caused a negative scale.

llvm-svn: 1922
2002-03-21 03:04:38 +00:00
Chris Lattner 14fe4c60d4 Namespace qualify debugging code
llvm-svn: 1921
2002-03-21 03:02:07 +00:00
Chris Lattner 0f8a4bb762 New testcase
llvm-svn: 1920
2002-03-21 03:01:14 +00:00
Chris Lattner 2a0d27ad8e Allow implementation of all HANDLE_*_INST macros at once by defining HANDLE_INST
llvm-svn: 1919
2002-03-19 05:51:18 +00:00
Vikram S. Adve 5fecde7331 New pass to convert Convert multi-dimensional
array references into 1-D references.

llvm-svn: 1918
2002-03-19 02:10:34 +00:00
Vikram S. Adve 7e5120163c Big bug fix: killed uses were being inserted instead of erased!
Also added a set of debug options.

llvm-svn: 1917
2002-03-19 00:59:08 +00:00
Chris Lattner dddac0d29a Initial checkin of InstVisitor class
llvm-svn: 1916
2002-03-18 19:07:42 +00:00
Chris Lattner 6a19d49f51 Add isa,cast,dyncast support for AllocationInst.
llvm-svn: 1915
2002-03-18 05:00:51 +00:00
Vikram S. Adve 8280198b62 include Makefile.tests.
llvm-svn: 1914
2002-03-18 04:05:26 +00:00
Vikram S. Adve 5b7700028d Need rule for runtime.o. This is just temporary to provide
ll__main so that llc output can link.

llvm-svn: 1913
2002-03-18 04:04:25 +00:00
Vikram S. Adve bd10b8e1d7 Fix libraries.
llvm-svn: 1912
2002-03-18 03:53:22 +00:00
Vikram S. Adve 78c2e12891 Minor changes.
llvm-svn: 1911
2002-03-18 03:52:31 +00:00
Vikram S. Adve 218f8de01a Fixed several problems with handling arguments to Phis.
llvm-svn: 1910
2002-03-18 03:47:26 +00:00
Vikram S. Adve 89637cd8e2 Big bug fix: killed uses were being inserted instead of erased!
Also added a set of debug options.

llvm-svn: 1909
2002-03-18 03:45:41 +00:00
Vikram S. Adve 9f129ffe56 Just a comment.
llvm-svn: 1908
2002-03-18 03:40:25 +00:00
Vikram S. Adve 98a0150582 New pass to decompose multi-dimensional array references into
a sequence of 1-D references, using a sequence of getElementPtrs.

llvm-svn: 1907
2002-03-18 03:39:09 +00:00
Vikram S. Adve 8e01c0b70e Big bug fix: getUsableUniRegAtMI needed to return values in arguments
but did not pass the arguments by reference!

llvm-svn: 1906
2002-03-18 03:37:19 +00:00
Vikram S. Adve 7446b323a7 Added function computeOffsetforLocalVar to check how big the
offset-from-FP will be before allocating space for a local variable.

llvm-svn: 1905
2002-03-18 03:36:30 +00:00
Vikram S. Adve 307916c008 Bug fix in setting CC register.
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.

llvm-svn: 1904
2002-03-18 03:35:24 +00:00
Vikram S. Adve e5842b527d Constants are now added to the constant pool only when a load
instruction is actually generated for them.
Rename the different versions of SetMachineOperand.

llvm-svn: 1903
2002-03-18 03:33:43 +00:00
Vikram S. Adve d2c71c1d08 Use vector for machine instructions returned by GetInstructionsByRule.
Fix constants in instructions generated for Phi elimination.

llvm-svn: 1902
2002-03-18 03:31:54 +00:00
Vikram S. Adve cecde7122c Big bug fix: getUsableUniRegAtMI needed to return values in arguments
but did not pass the arguments by reference!
Also added a function to get a register class by ID.

llvm-svn: 1901
2002-03-18 03:26:48 +00:00
Vikram S. Adve 81622ca144 Added function computeOffsetforLocalVar to check how big the
offset-from-FP will be before allocating space for a local variable.

llvm-svn: 1900
2002-03-18 03:23:29 +00:00
Vikram S. Adve 6547d4c1fe Use vector for machine instructions in GetInstructionsByRule.
llvm-svn: 1899
2002-03-18 03:20:46 +00:00
Vikram S. Adve c9fc306b70 Added machine-independent value for INVALID_MACHINE_OPCODE.
Just cosmetic changes otherwise.

llvm-svn: 1898
2002-03-18 03:19:38 +00:00
Vikram S. Adve a1cbf5e076 Add function getRegClassIDOfType.
getRegClassIDOfValue is now just a wrapper around this.

llvm-svn: 1897
2002-03-18 03:18:28 +00:00
Vikram S. Adve 493b8241e0 Add support for code generation for array references.
Also, use distinct names for the three types of SetMachineOperand to
avoid painful overloading problems and errors.
Bug fix in converting-int-to-float.  Other minor stuff.

llvm-svn: 1896
2002-03-18 03:15:35 +00:00
Vikram S. Adve db1435f410 Bug fixes for not using unified reg. numbers, and for using the
wrong register class for saving CC registers.
Also, use distinct names for the three types of SetMachineOperand.

llvm-svn: 1895
2002-03-18 03:12:16 +00:00
Vikram S. Adve c87f73d64e Bug fix in setting CC register.
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.

llvm-svn: 1894
2002-03-18 03:10:17 +00:00
Vikram S. Adve f9ab087be7 Use distinct names for the three types of SetMachineOperand to
avoid painful overloading problems and errors.

llvm-svn: 1893
2002-03-18 03:09:15 +00:00
Vikram S. Adve 55ee12bb25 Minor fixes.
llvm-svn: 1892
2002-03-18 03:08:07 +00:00
Vikram S. Adve 270f56a085 Handling of global names was severely broken when converting to 2 passes.
Different labels were generated for the same name in different passes.
Use an annotation to hold a fixed table of names.

llvm-svn: 1891
2002-03-18 03:07:26 +00:00
Vikram S. Adve 0513e01bee Several sundry bug fixes.
llvm-svn: 1890
2002-03-18 03:02:42 +00:00
Chris Lattner f5ef05f58c Convert the top line of the header from .cpp style to .h style.
llvm-svn: 1884
2002-03-17 21:16:22 +00:00
Chris Lattner de421a7993 Make an assertion provide a more helpful error message
llvm-svn: 1883
2002-03-17 21:16:01 +00:00
Vikram S. Adve 88981d2fa4 Regression tests for live-variable analysis on machine code
generated by llc.

llvm-svn: 1882
2002-03-16 21:42:33 +00:00
Chris Lattner 205373ff74 Remove code designed to compensate for a bug in GCC. The bug has since
been fixed.

llvm-svn: 1881
2002-03-15 20:35:21 +00:00
Chris Lattner fbf5be52c3 Checkin new test for problem anand ran into
llvm-svn: 1880
2002-03-15 20:25:09 +00:00
Chris Lattner 60ab10bbef Cleanup error message output a bit
llvm-svn: 1879
2002-03-15 20:21:29 +00:00