Bill Wendling [Thu, 8 Mar 2007 22:14:51 +0000 (22:14 +0000)]
Add MMX arithmetic testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35032
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 8 Mar 2007 22:09:11 +0000 (22:09 +0000)]
Added "padd*" support for MMX. Added MMX move stuff to X86InstrInfo so that
moves, loads, etc. are recognized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35031
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 21:59:30 +0000 (21:59 +0000)]
Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35030
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 19:27:32 +0000 (19:27 +0000)]
Fix test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35029
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 8 Mar 2007 19:05:01 +0000 (19:05 +0000)]
Speed Up Pass Manager.
- Check Immutableness before searching PreservedSet.
- Avoid unnecessary traversal while setting Last User.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35028
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 8 Mar 2007 15:15:18 +0000 (15:15 +0000)]
Fix a bug in function ComputeMaskedBits().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35027
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 08:31:54 +0000 (08:31 +0000)]
Putting more constants which do not contain relocations into .literal{4|8|16}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35026
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Mar 2007 07:07:03 +0000 (07:07 +0000)]
make this fail even in non-assert builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35025
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Mar 2007 07:03:55 +0000 (07:03 +0000)]
This appears correct, enable it so we can see perf changes on testers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35024
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Mar 2007 06:36:54 +0000 (06:36 +0000)]
Second half of PR1226. This is currently still disabled, until I have a chance to
do the correctness/performance analysis testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35023
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 8 Mar 2007 05:42:00 +0000 (05:42 +0000)]
Fix a bug in APIntified ComputeMaskedBits().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35022
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 02:56:40 +0000 (02:56 +0000)]
Change register allocation order to Dale's suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35021
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 02:55:08 +0000 (02:55 +0000)]
Bug fix. Not advancing the register scavenger iterator correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35020
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Mar 2007 01:52:58 +0000 (01:52 +0000)]
For PR1205:
Provide an APIntified version of MaskedValueIsZero. This will (temporarily)
cause a "defined but not used" message from the compiler. It will be used
in the next patch in this series.
Patch by Sheng Zhou.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35019
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 8 Mar 2007 01:46:38 +0000 (01:46 +0000)]
For PR1205:
Add a new ComputeMaskedBits function that is APIntified. We'll slowly
convert things over to use this version. When its all done, we'll remove
the existing version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35018
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 01:25:25 +0000 (01:25 +0000)]
For Darwin, put constant data into .const, .const_data, .literal{4|8|16}
sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35017
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 01:07:07 +0000 (01:07 +0000)]
Put constant data to .const, .const_data, .literal{4|8|16} sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35016
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 01:00:38 +0000 (01:00 +0000)]
Add ReadOnlySection directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35015
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Mar 2007 00:59:12 +0000 (00:59 +0000)]
Added ContainsRelocations() to check if a constant might only be resolvable at load time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35014
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 20:30:36 +0000 (20:30 +0000)]
Only safe to use a call-clobbered or spilled callee-saved register as scratch register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35010
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 7 Mar 2007 18:23:09 +0000 (18:23 +0000)]
Remove useless pattern fragments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35009
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 7 Mar 2007 16:25:09 +0000 (16:25 +0000)]
Refactoring of formal parameter flags. Enable properly use of
zext/sext/aext stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 7 Mar 2007 08:25:02 +0000 (08:25 +0000)]
Cleanup: make SetCounter an instance variable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35007
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 08:12:39 +0000 (08:12 +0000)]
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35006
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 08:07:03 +0000 (08:07 +0000)]
Avoid combining indexed load further.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35005
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 08:04:41 +0000 (08:04 +0000)]
Add a utility function to test whether a load is unindexed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35004
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Mar 2007 06:39:01 +0000 (06:39 +0000)]
Now IndVarSimplify is a LoopPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35003
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 7 Mar 2007 05:43:18 +0000 (05:43 +0000)]
Properly support v8i8 and v4i16 types. It now converts them to v2i32 for
load and stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35002
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Mar 2007 04:41:30 +0000 (04:41 +0000)]
Now LICM is a LoopPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35001
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 7 Mar 2007 02:47:57 +0000 (02:47 +0000)]
Fix DWARF debugging information on x86/Linux and (hopefully)
Mingw32/Cygwin targets. This fixes PR978
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35000
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 02:46:23 +0000 (02:46 +0000)]
ARM always use register scavenger. No longer reserves R12.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34999
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 02:38:05 +0000 (02:38 +0000)]
Fix some brittle code. Watch out for cases where register scavenger is pointing to deleted instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34998
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 02:36:16 +0000 (02:36 +0000)]
Add skipTo to set internal iterator. Useful when pointed to instruction is deleted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34997
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Mar 2007 01:38:05 +0000 (01:38 +0000)]
Now LoopUnroll is a LoopPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34996
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Mar 2007 00:39:11 +0000 (00:39 +0000)]
Fix the pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34994
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Mar 2007 00:32:12 +0000 (00:32 +0000)]
Make this test more reliable across platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34993
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Mar 2007 00:26:10 +0000 (00:26 +0000)]
Now LoopUnswitch is a LoopPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34992
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 00:13:48 +0000 (00:13 +0000)]
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34991
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Mar 2007 00:12:18 +0000 (00:12 +0000)]
Fix one more Thumb eliminateFrameIndex bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34990
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 22:23:15 +0000 (22:23 +0000)]
Fix all of last night's JIT failures in Prolangs-C++ by finishing the
implementation of getConstantValue().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34988
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 22:02:53 +0000 (22:02 +0000)]
Register scavenging is now on by default for ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34987
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 21:59:20 +0000 (21:59 +0000)]
Make load / store optimizer use register scavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34986
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 21:58:15 +0000 (21:58 +0000)]
Minor bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34985
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 21:14:09 +0000 (21:14 +0000)]
Now LoopStrengthReduce is a LoopPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Mar 2007 20:01:06 +0000 (20:01 +0000)]
big endian 32-bit systems (e.g. ppc32) want to return the high reg first, not
the lo-reg first. This is fallout from my ppc calling conv change yesterday,
it fixes test/ExecutionEngine/2003-05-06-LivenessClobber.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34983
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 19:50:49 +0000 (19:50 +0000)]
Insert loop into LQ before visiting children.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34982
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 6 Mar 2007 19:25:02 +0000 (19:25 +0000)]
Small eye-candy: use asciz directive everywhere, where possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34981
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 19:11:25 +0000 (19:11 +0000)]
Use schedulePass() instead of assignPassManager() to add new LPPassManager.
This ensures that require analysis info is available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34980
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 19:00:02 +0000 (19:00 +0000)]
Add LPPassManager::insertLoop().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34979
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 6 Mar 2007 18:53:42 +0000 (18:53 +0000)]
Add LOAD/STORE support for MMX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34978
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 18:38:33 +0000 (18:38 +0000)]
LPPassManager::deleteLoopFromQueue() add meat. Cut-n-paste code from
LoopUnswitch pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34977
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 18:02:41 +0000 (18:02 +0000)]
Code clean up. Prepare to use register scavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34976
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 17:59:37 +0000 (17:59 +0000)]
LPPassManager. Implement preparePassManager() hook.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34975
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 17:52:53 +0000 (17:52 +0000)]
Keep track of higher level analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34974
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 17:48:25 +0000 (17:48 +0000)]
Don't run lli in llvm-test. Instead just check that the datalayout string
is the right length.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34973
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 17:44:43 +0000 (17:44 +0000)]
Fix this to put its output in the output directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34971
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 17:26:14 +0000 (17:26 +0000)]
Revert last patch. The examples build now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34970
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 17:24:31 +0000 (17:24 +0000)]
Adjust for changes in GenericValue type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34969
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 6 Mar 2007 16:59:03 +0000 (16:59 +0000)]
LPPassManager : Add initialization and finalizatino hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34968
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 10:05:14 +0000 (10:05 +0000)]
Minor interface change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34967
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 6 Mar 2007 10:03:56 +0000 (10:03 +0000)]
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
Evan Cheng [Tue, 6 Mar 2007 10:02:38 +0000 (10:02 +0000)]
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
Evan Cheng [Tue, 6 Mar 2007 10:01:25 +0000 (10:01 +0000)]
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
Anton Korobeynikov [Tue, 6 Mar 2007 08:12:33 +0000 (08:12 +0000)]
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
Chris Lattner [Tue, 6 Mar 2007 07:30:03 +0000 (07:30 +0000)]
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
Chris Lattner [Tue, 6 Mar 2007 06:27:34 +0000 (06:27 +0000)]
llvm-gcc 3.4 is dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34961
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 6 Mar 2007 06:10:33 +0000 (06:10 +0000)]
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
Anton Korobeynikov [Tue, 6 Mar 2007 05:32:48 +0000 (05:32 +0000)]
Implement PR1240
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34959
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Mar 2007 05:03:16 +0000 (05:03 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 05:02:28 +0000 (05:02 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:46:41 +0000 (03:46 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:41:50 +0000 (03:41 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:12:55 +0000 (03:12 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:11:31 +0000 (03:11 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:09:31 +0000 (03:09 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:08:12 +0000 (03:08 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:06:48 +0000 (03:06 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:05:57 +0000 (03:05 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:04:04 +0000 (03:04 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:01:54 +0000 (03:01 +0000)]
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
Reid Spencer [Tue, 6 Mar 2007 03:00:17 +0000 (03:00 +0000)]
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
Devang Patel [Tue, 6 Mar 2007 02:30:46 +0000 (02:30 +0000)]
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
Devang Patel [Tue, 6 Mar 2007 01:55:46 +0000 (01:55 +0000)]
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
Devang Patel [Tue, 6 Mar 2007 01:06:16 +0000 (01:06 +0000)]
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
Chris Lattner [Tue, 6 Mar 2007 00:59:59 +0000 (00:59 +0000)]
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
Reid Spencer [Mon, 5 Mar 2007 23:36:13 +0000 (23:36 +0000)]
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
Bill Wendling [Mon, 5 Mar 2007 23:09:45 +0000 (23:09 +0000)]
Add the emms intrinsic for MMX support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34938
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Mar 2007 23:06:32 +0000 (23:06 +0000)]
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
Devang Patel [Mon, 5 Mar 2007 22:57:49 +0000 (22:57 +0000)]
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
Reid Spencer [Mon, 5 Mar 2007 22:51:08 +0000 (22:51 +0000)]
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
Devang Patel [Mon, 5 Mar 2007 20:01:30 +0000 (20:01 +0000)]
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
Devang Patel [Mon, 5 Mar 2007 18:20:51 +0000 (18:20 +0000)]
Account for time consumed by releaseMemory() properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34932
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Mon, 5 Mar 2007 17:59:58 +0000 (17:59 +0000)]
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
Jeff Cohen [Mon, 5 Mar 2007 17:22:33 +0000 (17:22 +0000)]
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
Zhou Sheng [Mon, 5 Mar 2007 16:42:58 +0000 (16:42 +0000)]
Correct the calculation in APInt::logBase2().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34929
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 5 Mar 2007 09:21:11 +0000 (09:21 +0000)]
Credit self for Ada front-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34928
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 5 Mar 2007 08:39:58 +0000 (08:39 +0000)]
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
Duncan Sands [Mon, 5 Mar 2007 08:34:35 +0000 (08:34 +0000)]
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
Duncan Sands [Mon, 5 Mar 2007 08:20:48 +0000 (08:20 +0000)]
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
Chris Lattner [Mon, 5 Mar 2007 07:52:57 +0000 (07:52 +0000)]
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