Reid Spencer
34bd70de3c
Adjust for changes in GenericValue type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34969 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 17:24:31 +00:00
Devang Patel
a5057d02c0
LPPassManager : Add initialization and finalizatino hooks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34968 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 16:59:03 +00:00
Evan Cheng
28b3c45109
Minor interface change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34967 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 10:05:14 +00:00
Evan Cheng
140e33cfd1
Scavenge a register using the register scavenger when needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34966 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 10:03:56 +00:00
Evan Cheng
87f8bf65dd
If target decides to create an emergency spill slot, make sure it's closest to SP or frame pointer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34965 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 10:02:38 +00:00
Evan Cheng
b74a3e6fda
Register scavenger is now capable of scavenging. It spills a register whose use of furthest away to make it available.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34964 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 10:01:25 +00:00
Anton Korobeynikov
1d9baccc9b
Use new SDIselParamAttr enumeration. This removes "magick" constants
...
from formal attributes' flags processing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 08:12:33 +00:00
Chris Lattner
3c2319e245
temporarily disable this until Reid has a chance to fix it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34962 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 07:30:03 +00:00
Chris Lattner
82ad9f1686
llvm-gcc 3.4 is dead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34961 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 06:27:34 +00:00
Anton Korobeynikov
0db79d86de
Enumerate SDISel formal parameter attributes. Make use of new
...
enumeration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34960 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 06:10:33 +00:00
Anton Korobeynikov
c6551ffdd5
Implement PR1240
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34959 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 05:32:48 +00:00
Reid Spencer
415c1f7438
1. Make StoreValueToMemory a little more efficient by not requiring caller
...
to make a copy of the GenericValue.
2. Fix a copy & paste bug in StoreValueToMemory where 64-bit values were
truncated to 32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34958 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 05:03:16 +00:00
Reid Spencer
2471ae46df
Make StoreValueToMemory a little more efficient by not copying a
...
GenericValue to a temporary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34957 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 05:02:28 +00:00
Reid Spencer
5763105121
Fix some thinko's in the last patch. PtrSize has to be in bits and we
...
might need to zext not just trunc the value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34955 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:46:41 +00:00
Reid Spencer
7553c34135
Fix a bug in IntToPtr. Truncating to 64-bits only works if the integer
...
is larger. Adjust so that it truncates to pointer width, only if necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34954 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:41:50 +00:00
Reid Spencer
124294bc59
Obtain the exit function before execution just in case the module
...
disappears before we get to calling the exit function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34953 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:12:55 +00:00
Reid Spencer
38f6a15df6
Simplify code as a result of the change in GenericValue to have a single
...
integer field of type APInt instead of different sized integer fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34952 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:11:31 +00:00
Reid Spencer
f9536330d6
Radically simplify execution. This patch gets rid of all the special
...
handling for integer of various sizes. GenericValue now has just a single
integer field of type APInt. We use its facilities directly in the
execution of all instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34951 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:09:31 +00:00
Reid Spencer
bfcd5992d8
Adjust and simplify external function processing now that GenericValue has
...
a single integer field of type APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34950 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:08:12 +00:00
Reid Spencer
d08050bd1e
APInt's are no longer allocated on the heap because they are direct
...
members of GenericValue. Consequently the code to clean them up isn't
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34948 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:06:48 +00:00
Reid Spencer
deca08d93d
Remove the insufficient code in Interpreter::create that computed the
...
Target DataLayout incorrectly. For now, we'll trust that the module has
got the correct DataLayout. In the future, this needs to be changed to
tell the TargetData to be "current host".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34947 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:05:57 +00:00
Reid Spencer
8fb0f190a9
Simplify things significantly because GenericValue now has a single integer
...
field, of type APInt, instead of multiple integer fields. Also, get rid of
the special endianness code in StoreValueToMemory and LoadValueToMemory.
ExecutionEngine is always used to execute on the host platform so this is
now unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34946 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:04:04 +00:00
Reid Spencer
9d87eb19be
Make GenericeValue into a struct with a union instead of just a union. This
...
allows an APInt value to be constructed. Remove all the native integer types
from the union. These are replaced with the single IntVal of type APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34945 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:01:54 +00:00
Reid Spencer
7ca0689b9b
Test to ensure that data layout is generated correctly for host platform.
...
This is for PR1242.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34944 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 03:00:17 +00:00
Devang Patel
30159729ad
Use std::deque to manage loop queue inside LPPassManager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34943 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 02:30:46 +00:00
Devang Patel
fe613905b3
Keep track of inherited analysis. For example, if a loop pass does not
...
preserve dominator info then it should update parent FPPassManager's
available analysis info to reflect this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34942 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 01:55:46 +00:00
Devang Patel
22a1cf9d3a
Add preparePassManager() hook. This allows each pass to check whether
...
current active pass manager is appropriate or not.
A loop pass may consider current LPPassManager in appropraite if loop
pass is not preserving analysis information that is used by other
passes managed by current LPPassManager. In such situation, loop pass
can pop current LPPassManager from the PMStack using this hook
and use new LPPassManager for itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34941 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 01:06:16 +00:00
Chris Lattner
b9a7bea99c
Switch PPC return lower to use an autogenerated CC description.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34940 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 00:59:59 +00:00
Reid Spencer
baf1e4b914
Remove an unnecessary if statement and adjust indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34939 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 23:36:13 +00:00
Bill Wendling
229baffc4e
Add the emms intrinsic for MMX support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34938 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 23:09:45 +00:00
Reid Spencer
53201869cd
Document the use of getValueType() more accurately, specifically explain
...
that the instruction opcode is added to the InstructionVal value and the
consequences of that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34937 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 23:06:32 +00:00
Devang Patel
cf5fb2b614
Current pass manager, not the parent pass manager, assumes the role of
...
last user when one of the managed pass uses info provided by parent pass
manager.
This was exposed by LPPassManager work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 22:57:49 +00:00
Reid Spencer
61e85b2821
Add a test case for a particular udiv/select transform.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34935 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 22:51:08 +00:00
Devang Patel
7f99761143
Avoid constructing std::strings unless pass debugging is ON.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 20:01:30 +00:00
Devang Patel
55d5ac7b5b
Account for time consumed by releaseMemory() properly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34932 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 18:20:51 +00:00
Lauro Ramos Venancio
6d7dd8ef46
Use init_array/fini_array sections for static contructors/destructors when the ABI is AAPCS.
...
Fix SingleSource/Regression/C/ConstructorDestructorAttributes test on arm-linux-gnueabi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34931 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 17:59:58 +00:00
Jeff Cohen
72adee00f6
The hack won't work on VS 2005, and it might not be needed anyway.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34930 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 17:22:33 +00:00
Zhou Sheng
3130835bdf
Correct the calculation in APInt::logBase2().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 16:42:58 +00:00
Duncan Sands
ef476fdce2
Credit self for Ada front-end.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34928 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 09:21:11 +00:00
Duncan Sands
d1d75b4dcb
Testcase for handling of static constant declarations in EmitBIND_EXPR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34927 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 08:39:58 +00:00
Duncan Sands
bc95a5487c
Testcase causing the Ada front-end to create bogus constructor fields.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34926 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 08:34:35 +00:00
Duncan Sands
143cced66b
New directory for Ada testcases. Test handling of NON_LVALUE_EXPR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34925 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 08:20:48 +00:00
Chris Lattner
372dda8881
This is the first major step of implementing PR1226. We now successfully
...
scalarrepl things down to elements, but mem2reg can't promote elements that
are memset/memcpy'd. Until then, the code is disabled "0 &&".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34924 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 07:52:57 +00:00
Jeff Cohen
413bc8262e
Ensure 64-bit correctness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34923 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 05:45:08 +00:00
Jeff Cohen
0a18267248
Implement memoryLimit on Windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34922 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 05:22:08 +00:00
Jeff Cohen
f15bd1b9c6
Elminate tabs and improve comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34921 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:46:22 +00:00
Chris Lattner
3c69849696
fix a subtle bug that caused an MSVC warning. Thanks to Jeffc for pointing this out.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34920 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:11:19 +00:00
Chris Lattner
783ccdb5c4
Add some simplifications for demanded bits, this allows instcombine to turn:
...
define i64 @test(i64 %A, i32 %B) {
%tmp12 = zext i32 %B to i64 ; <i64> [#uses=1]
%tmp3 = shl i64 %tmp12, 32 ; <i64> [#uses=1]
%tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1]
%tmp6 = and i64 %tmp5, 123 ; <i64> [#uses=1]
ret i64 %tmp6
}
into:
define i64 @test(i64 %A, i32 %B) {
%tmp6 = and i64 %A, 123 ; <i64> [#uses=1]
ret i64 %tmp6
}
This implements Transforms/InstCombine/add2.ll:test1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34919 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:02:29 +00:00
Chris Lattner
bc62f24a8c
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:01:38 +00:00
Jeff Cohen
ca5183d445
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:00:42 +00:00