Chris Lattner
9e77f7e08b
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1931 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:27:20 +00:00
Chris Lattner
8e86542fb6
Implement the new InsertInstBeforeInst function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1930 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:24:00 +00:00
Chris Lattner
45ef5c26d4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1929 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:22:23 +00:00
Chris Lattner
35191769a5
Fix bug in testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1928 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:19:43 +00:00
Chris Lattner
f78642bc06
Declare the new InsertInstBeforeInst function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1927 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:15:53 +00:00
Chris Lattner
af2d701e12
Remove a misguided API extension
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1926 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 05:46:43 +00:00
Chris Lattner
774888c1a4
New testcase for YALRB (yet another level raise bug)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1925 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 05:39:20 +00:00
Chris Lattner
150dcb9e2d
Add an assertion to catch a misuse of replaceAllUsesWith
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1924 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 05:38:15 +00:00
Chris Lattner
60091fa6b1
Checkin testcase that was just sitting in my tree. Looks like backreferences
...
have some problem in the parser, oh joy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1923 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 05:35:11 +00:00
Chris Lattner
99fb91cc2f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1922 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 03:04:38 +00:00
Chris Lattner
ebcd28eb15
Namespace qualify debugging code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1921 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 03:02:07 +00:00
Chris Lattner
f7f04098ce
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1920 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 03:01:14 +00:00
Chris Lattner
99584c69b6
Allow implementation of all HANDLE_*_INST macros at once by defining HANDLE_INST
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1919 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-19 05:51:18 +00:00
Vikram S. Adve
07fb6e603f
New pass to convert Convert multi-dimensional
...
array references into 1-D references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1918 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-19 02:10:34 +00:00
Vikram S. Adve
06fa17c1c2
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1917 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-19 00:59:08 +00:00
Chris Lattner
b4c5f83eac
Initial checkin of InstVisitor class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1916 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 19:07:42 +00:00
Chris Lattner
4e390f6199
Add isa,cast,dyncast support for AllocationInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1915 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 05:00:51 +00:00
Vikram S. Adve
fad0f52666
include Makefile.tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1914 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 04:05:26 +00:00
Vikram S. Adve
1d7aefd6c7
Need rule for runtime.o. This is just temporary to provide
...
ll__main so that llc output can link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1913 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 04:04:25 +00:00
Vikram S. Adve
d79b4eb506
Fix libraries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1912 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:53:22 +00:00
Vikram S. Adve
4bec7fab45
Minor changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1911 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:52:31 +00:00
Vikram S. Adve
4a12da7912
Fixed several problems with handling arguments to Phis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1910 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:47:26 +00:00
Vikram S. Adve
9cf85a75d2
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1909 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:45:41 +00:00
Vikram S. Adve
524185af3f
Just a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1908 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:40:25 +00:00
Vikram S. Adve
a45a327e8d
New pass to decompose multi-dimensional array references into
...
a sequence of 1-D references, using a sequence of getElementPtrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1907 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:39:09 +00:00
Vikram S. Adve
23a4c8fcb5
Big bug fix: getUsableUniRegAtMI needed to return values in arguments
...
but did not pass the arguments by reference!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1906 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:37:19 +00:00
Vikram S. Adve
89e2da034a
Added function computeOffsetforLocalVar to check how big the
...
offset-from-FP will be before allocating space for a local variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1905 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:36:30 +00:00
Vikram S. Adve
c356e565a6
Bug fix in setting CC register.
...
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1904 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:35:24 +00:00
Vikram S. Adve
42f632041d
Constants are now added to the constant pool only when a load
...
instruction is actually generated for them.
Rename the different versions of SetMachineOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1903 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:33:43 +00:00
Vikram S. Adve
1ed009f66e
Use vector for machine instructions returned by GetInstructionsByRule.
...
Fix constants in instructions generated for Phi elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1902 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:31:54 +00:00
Vikram S. Adve
705f95e0b7
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1901 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:26:48 +00:00
Vikram S. Adve
ce0845aeba
Added function computeOffsetforLocalVar to check how big the
...
offset-from-FP will be before allocating space for a local variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1900 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:23:29 +00:00
Vikram S. Adve
f1a51be375
Use vector for machine instructions in GetInstructionsByRule.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1899 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:20:46 +00:00
Vikram S. Adve
851597c3b3
Added machine-independent value for INVALID_MACHINE_OPCODE.
...
Just cosmetic changes otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1898 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:19:38 +00:00
Vikram S. Adve
80347ecb14
Add function getRegClassIDOfType.
...
getRegClassIDOfValue is now just a wrapper around this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1897 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:18:28 +00:00
Vikram S. Adve
7482532129
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1896 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:15:35 +00:00
Vikram S. Adve
f1c15ee4d1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1895 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:12:16 +00:00
Vikram S. Adve
9558b4a292
Bug fix in setting CC register.
...
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1894 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:10:17 +00:00
Vikram S. Adve
e76af29edc
Use distinct names for the three types of SetMachineOperand to
...
avoid painful overloading problems and errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1893 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:09:15 +00:00
Vikram S. Adve
e6d2c41d4c
Minor fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1892 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:08:07 +00:00
Vikram S. Adve
d198c47a0e
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1891 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:07:26 +00:00
Vikram S. Adve
dd55899f9a
Several sundry bug fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1890 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:02:42 +00:00
Chris Lattner
a1f0021a67
Convert the top line of the header from .cpp style to .h style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1884 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-17 21:16:22 +00:00
Chris Lattner
2bfc0310ff
Make an assertion provide a more helpful error message
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1883 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-17 21:16:01 +00:00
Vikram S. Adve
190144293d
Regression tests for live-variable analysis on machine code
...
generated by llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1882 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-16 21:42:33 +00:00
Chris Lattner
f09733a876
Remove code designed to compensate for a bug in GCC. The bug has since
...
been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1881 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-15 20:35:21 +00:00
Chris Lattner
acd3caec0d
Checkin new test for problem anand ran into
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1880 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-15 20:25:09 +00:00
Chris Lattner
9b638019ca
Cleanup error message output a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1879 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-15 20:21:29 +00:00
Chris Lattner
2b72c360bb
Expose dead instruction elimination pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1877 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-14 22:36:15 +00:00
Chris Lattner
9b534266f0
Fix test/Regression/Other/2002-03-14-ValueToLarge.ll. Note that this
...
fix could be better, but we don't have the infrastructure to find out what
size types are yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1876 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-14 22:35:50 +00:00