Commit Graph

28651 Commits

Author SHA1 Message Date
Chris Lattner
c9d3471d07 fix testcase. It's not safe to strictly evaluate a load that should be lazy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32842 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 19:12:31 +00:00
Chris Lattner
a3bfdd47ab Private labels start with .L on linux, not just .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32841 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 18:16:48 +00:00
Reid Spencer
aff9387168 Fix a comment that referred to the now defunct ubyte type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32840 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 17:24:59 +00:00
Reid Spencer
f54ad97a4e Remove two useless bit casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32839 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 17:24:11 +00:00
Reid Spencer
0a516f926f It is no longer permissible to have undefined types in function parameters.
Just fix it by defining the type as opaque.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32838 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 17:03:48 +00:00
Reid Spencer
6f978b1eff Fix this test case. It is no longer permissible to have undefined types
in function parameters. Fix by just defining the type as opaque.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32837 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 17:01:18 +00:00
Reid Spencer
bcca3405bd Legalizer doesn't do an ANY_EXTEND if we don't ask for one so make sure
that we default to an ANY_EXTEND if no parameter attribute is set on the
result value of a function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32836 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 16:49:33 +00:00
Jim Laskey
26a3687d53 NULL names should pass validation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32835 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 13:46:20 +00:00
Jim Laskey
1e3a5772d8 Silence warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32834 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 13:36:40 +00:00
Anton Korobeynikov
317848f4a1 Really big cleanup.
- New target type "mingw" was introduced
- Same things for both mingw & cygwin are marked as "cygming" (as in
gcc)
- .lcomm is supported here, so allow LLVM to use it
- Correctly use underscored versions of setjmp & _longjmp for both mingw
& cygwin


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32833 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 11:43:14 +00:00
Evan Cheng
7f7fdcca8f A bit more debugging printf's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32832 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 07:44:30 +00:00
Reid Spencer
376dd212f9 Restore previous behavior of defaulting to ZEXT. This works around two
things: (1) preventing PR1071 and (2) working around missing parameter
attributes for bool type. (2) will be fixed shortly. When PR1071 is fixed,
this patch should be undone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32831 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 05:03:05 +00:00
Reid Spencer
8c57dfb1ae Two changes:
1. Switch expression and cases are compared signed and are sign extended.
2. For function results needing extended, do SIGN_EXTEND if the SExtAttribute
   is set and ZERO_EXTEND if the ZExtAttribute is set, otherwise just let
   the Legalizer do ANY_EXTEND.
This fixes the recent regression in kimwitu++ and probably the llvm-gcc
bootstrap issue we had today.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32830 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 04:25:33 +00:00
Reid Spencer
b47b25cfda Clean up from recent changes. Comment the new parameter to ExpandLibCall.
Consolidate some lines of code and remove duplication.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32829 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 04:22:32 +00:00
Reid Spencer
2233361a83 Fix this test cases to use parameter attributes for its parameter and
result types. These tests are checking for sext behavior and it won't
happen unless requested with the parameter attribute.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32828 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 04:20:23 +00:00
Jim Laskey
52ab904ee5 Vectors are not supported by ConstantInt::getAllOnesValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32827 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-03 00:11:03 +00:00
Reid Spencer
56581b713d This test case previously passed the assembler without error even though
it used an undefined type name as a parameter argument. This bug in the
assembler has been fixed and it is now necessary to define the type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32826 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:56:26 +00:00
Reid Spencer
8c8a2dc467 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:54:12 +00:00
Reid Spencer
98b3c5c2c0 Implement checking for unresolved types in the argument types and result
type of function definitions.
This fixes test/Regression/Assember/2007-01-02-Undefined-Arg-Type.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32824 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:53:43 +00:00
Evan Cheng
c2b861da18 Fix naming inconsistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32823 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:33:40 +00:00
Evan Cheng
ad93d7fda5 - Fixing naming inconsistency: calleesave -> calleesaved.
- Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32822 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:31:15 +00:00
Evan Cheng
0098b3e2b6 Fix naming inconsistency: calleesave -> calleesaved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32821 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 21:30:17 +00:00
Evan Cheng
ebdf389e2f Add virtual method spillCalleeSaveRegisters() and restoreCalleeSaveRegisters()
to MRegisterInfo. These allow the target to issue instructions to spill and
restore callee saved registers in case where individual stores / loads aren't
the correct / profitable choice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32820 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 20:55:17 +00:00
Reid Spencer
42525a3c5b Add a test case for abstract parameter and result types in function
definitions. The assembler should produce an error on this input.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32819 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 20:47:51 +00:00
Jim Laskey
cb69b2f0dc PR1068 - Unbounded array debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32818 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 11:53:52 +00:00
Reid Spencer
7356ae4015 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32817 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 06:34:08 +00:00
Reid Spencer
2128607fd1 Permit signed and unsigned integer constants to be used with either signed
or unsigned integer types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32816 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 06:33:02 +00:00
Reid Spencer
7e6b4f7a6d For PR1070:
Tweak the RUN: lines of these tests to accommodate the renaming of
variables done by llvm-upgrade. The renaming occurs as a result of avoiding
name collisons for collapsed type planes. Conflicting names have a .u
(unsigned) or .s (signed) suffix added. This patch updates the grep
expression to accommodate the new names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32815 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:55:05 +00:00
Reid Spencer
8aabc9eb23 For PR1070:
Revert previous patch now that llvm-upgrade can handle collapsed type
plane conversion properly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32814 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:53:06 +00:00
Reid Spencer
a14c3f11ac Manually upgrade this test case to make sure that the new cast-to-bool
semantics are retained.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:50:11 +00:00
Reid Spencer
6e8e64421e For PR1070:
Add a test case to ensure that llvm-upgrade retains correct semantics
for the previous definition of "cast to bool" which compared against null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32812 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:48:32 +00:00
Reid Spencer
52402b0bef Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32811 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:45:11 +00:00
Reid Spencer
2b8036e2c8 For PR1070:
Revise the upgrade parser to keep track of types more faithfully and use
this information to resolve name conflicts resulting from collapsed type
planes. The type planes have collapsed because the integer types are now
signless so that uint and int became i32. Where two planes existed for uint
and int, only i32 exists. Any variable names depending on the type planes
to pmake the identifier unique would cause a conflict. This patch resolves
that conflict for many but not all cases.

Situations involving the integer types and pointers to them are handled
by this patch.  However, there are corner cases that are not handled
well, such as:

%t1 = type { uint, int }
%t2 = type { int, uint }

void %myfunc(%t1* one, %t2* two) {
  %var = load %t1* one
  %var = load %t2* two
}

In the scenario above, %t1 and %t2 are really the same type: { i32, i32 }
Consequently attempting to name %var twice will yield a redefinition error
when assembled.

While this patch is sufficien to allow the llvm/test suite to pass, More
work needs to be to complete the handling of these corner cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 05:44:33 +00:00
Reid Spencer
627c73d13a Reverse last patch, committed by accident.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32809 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 04:30:40 +00:00
Reid Spencer
4265a08779 Fix this test case to be legal. There is no ubyte %tmp ever defined!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32808 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 04:19:32 +00:00
Reid Spencer
5fe31dc520 Add some convenience functions for getting the source and destination
types from any Cast instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-02 02:08:27 +00:00
Reid Spencer
8155d6d8d9 Back out last revision now that llvm-upgrade can remove useless bitcasts.
This serves as a test of that feature.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32806 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-01 01:22:53 +00:00
Reid Spencer
f5626a38a7 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32805 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-01 01:20:41 +00:00
Reid Spencer
16222c006d For PR1070:
Remove useless bitcasts by commenting them out.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32804 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-01 01:20:16 +00:00
Reid Spencer
ee5d25e5cc Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32803 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 22:26:06 +00:00
Reid Spencer
90668345a1 Convert the intrinsic function definitions to use llvm_i32_ty instead of
llvm_uint_ty or llvm_int_ty. Similarly for i8, i16 and i64


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32802 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 22:24:55 +00:00
Reid Spencer
6359618e43 Fix a cut-and-paste bug for processing of InvokeInst parameter attributes.
The lookup of parameter attributes was offset by two because of the
additional operands in an invoke instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32801 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 22:17:01 +00:00
Reid Spencer
c6c59fd89f Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32800 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 21:47:02 +00:00
Reid Spencer
e03969f816 Remove an extra semi-colon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32799 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 21:46:36 +00:00
Reid Spencer
cc615c38b1 Fix a bug in comparison of GEP indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32798 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 21:43:30 +00:00
Reid Spencer
c28d2bc476 Remove documentation of non-existent cextcc and csretextcc calling
conventions as these have been replaced with parameter attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32797 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 21:30:18 +00:00
Reid Spencer
71305d760e Add a missing colon. Noticed by Jeff Cohen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32796 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 21:25:25 +00:00
Rafael Espindola
9985f9f61e implement missing compares
patch by Lauro
bug fixed by me


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32795 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 18:52:39 +00:00
Reid Spencer
1fd79b8c42 Fix a bug in getParamAttrs where an invalid value would be returned if the
index passed in was out of range for the number of parameter attributes set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32794 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 17:50:33 +00:00
Reid Spencer
f17a0b7117 One more try on the table formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32793 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 07:20:23 +00:00