oota-llvm.git
16 years agoMake these loops follow GetGEPOperands() behavior.
Wojciech Matyjewicz [Thu, 13 Dec 2007 16:22:58 +0000 (16:22 +0000)]
Make these loops follow GetGEPOperands() behavior.
Let: %q = GEP %p, X, ...
If %p is a GEP, we can chase baseptr further, only if X==0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44999 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix typo.
Evan Cheng [Thu, 13 Dec 2007 07:50:36 +0000 (07:50 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44997 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd register pairs to the list to check for local interferences.
Owen Anderson [Thu, 13 Dec 2007 05:53:03 +0000 (05:53 +0000)]
Add register pairs to the list to check for local interferences.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove ugly and horrible code. It's not necessary for correctness, and can be added...
Owen Anderson [Thu, 13 Dec 2007 05:43:37 +0000 (05:43 +0000)]
Remove ugly and horrible code.  It's not necessary for correctness, and can be added back later if it causes code quality issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBe extra careful with extension use optimation. Now turned on by default.
Evan Cheng [Thu, 13 Dec 2007 03:32:53 +0000 (03:32 +0000)]
Be extra careful with extension use optimation. Now turned on by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44981 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoApply CBE/MSIL patch to autoconf
Nate Begeman [Thu, 13 Dec 2007 02:24:45 +0000 (02:24 +0000)]
Apply CBE/MSIL patch to autoconf

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44980 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd install-libs target which only installs libraries, not tools
Nate Begeman [Thu, 13 Dec 2007 02:17:17 +0000 (02:17 +0000)]
Add install-libs target which only installs libraries, not tools

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44979 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove this testcase as it will always fail on
Zhou Sheng [Thu, 13 Dec 2007 02:03:57 +0000 (02:03 +0000)]
Remove this testcase as it will always fail on
platform like Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44977 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDo not build CBackend and MSIL regardless of configured targets
Nate Begeman [Thu, 13 Dec 2007 01:18:52 +0000 (01:18 +0000)]
Do not build CBackend and MSIL regardless of configured targets

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44973 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFold some and + shift in x86 addressing mode.
Evan Cheng [Thu, 13 Dec 2007 00:43:27 +0000 (00:43 +0000)]
Fold some and + shift in x86 addressing mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44970 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOops. Forgot these.
Evan Cheng [Thu, 13 Dec 2007 00:42:35 +0000 (00:42 +0000)]
Oops. Forgot these.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44969 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix for edge profiling, patch by 'Marc' for PR1857
Chris Lattner [Thu, 13 Dec 2007 00:04:46 +0000 (00:04 +0000)]
Fix for edge profiling, patch by 'Marc' for PR1857

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44965 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCosmetic change.
Evan Cheng [Wed, 12 Dec 2007 23:15:59 +0000 (23:15 +0000)]
Cosmetic change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44961 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable...
Evan Cheng [Wed, 12 Dec 2007 23:12:09 +0000 (23:12 +0000)]
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove host endianness info from TargetData and
Duncan Sands [Wed, 12 Dec 2007 23:03:45 +0000 (23:03 +0000)]
Remove host endianness info from TargetData and
put it in a new header System/Host.h instead.
Instead of getting the endianness from configure,
calculate it directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44959 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove a forward-declaration for a non-existant class.
Dan Gohman [Wed, 12 Dec 2007 22:25:09 +0000 (22:25 +0000)]
Remove a forward-declaration for a non-existant class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44955 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAllow vector integer constants to be created with
Dan Gohman [Wed, 12 Dec 2007 22:21:26 +0000 (22:21 +0000)]
Allow vector integer constants to be created with
SelectionDAG::getConstant, in the same way as vector floating-point
constants. This allows the legalize expansion code for @llvm.ctpop and
friends to be usable with vector types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse vector for child storage instead of map. This will also make
Anton Korobeynikov [Wed, 12 Dec 2007 19:08:44 +0000 (19:08 +0000)]
Use vector for child storage instead of map. This will also make
our life during future GraphTraits'ing slightly easier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44952 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRevert r44626, which turned off the use of readonly
Duncan Sands [Wed, 12 Dec 2007 16:01:40 +0000 (16:01 +0000)]
Revert r44626, which turned off the use of readonly
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap.  It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago1. "Upgrage" comments.
Wojciech Matyjewicz [Wed, 12 Dec 2007 15:21:32 +0000 (15:21 +0000)]
1. "Upgrage" comments.
2. Using zero-extended value of Scale and unsigned division is safe provided
   that Scale doesn't have the sign bit set.
   Previously these 2 instructions:
        %p = bitcast [100 x {i8,i8,i8}]* %x to i8*
        %q = getelementptr i8* %p, i32 -4
   were combined into:
        %q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0,
               i32 1431655764, i32 0
   what was incorrect.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44936 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRegenerate.
Christopher Lamb [Wed, 12 Dec 2007 08:45:45 +0000 (08:45 +0000)]
Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44934 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement part of review feedback for address spaces.
Christopher Lamb [Wed, 12 Dec 2007 08:44:39 +0000 (08:44 +0000)]
Implement part of review feedback for address spaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44933 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse shuffles to implement insert_vector_elt for i32, i64, f32, and f64.
Evan Cheng [Wed, 12 Dec 2007 07:55:34 +0000 (07:55 +0000)]
Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44929 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a test case for -optimize-ext-uses.
Evan Cheng [Wed, 12 Dec 2007 07:54:08 +0000 (07:54 +0000)]
Add a test case for -optimize-ext-uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44928 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLower a build_vector with all constants into a constpool load unless it can be done...
Evan Cheng [Wed, 12 Dec 2007 06:45:40 +0000 (06:45 +0000)]
Lower a build_vector with all constants into a constpool load unless it can be done with a move to low part.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44921 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a guard to cxxabi header as other platform may
Zhou Sheng [Wed, 12 Dec 2007 06:16:47 +0000 (06:16 +0000)]
Add a guard to cxxabi header as other platform may
not support it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44914 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed PR1629.
Zhou Sheng [Wed, 12 Dec 2007 04:55:43 +0000 (04:55 +0000)]
Fixed PR1629.
Make lli interpreter correctly call external functions sin()/cos(),
__cxa_guard_acquire() and __cxa_guard_release().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44910 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bug in my previous patch, thanks to Jay Foad for
Chris Lattner [Wed, 12 Dec 2007 03:56:54 +0000 (03:56 +0000)]
Fix a bug in my previous patch, thanks to Jay Foad for
pointing this out and correcting the patch!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44907 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't muck with phi nodes; bug fixes.
Evan Cheng [Wed, 12 Dec 2007 02:53:41 +0000 (02:53 +0000)]
Don't muck with phi nodes; bug fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44905 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrect typo for Linux: s/esp/%rsp/
Scott Michel [Wed, 12 Dec 2007 02:38:28 +0000 (02:38 +0000)]
Correct typo for Linux: s/esp/%rsp/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44904 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBit masks conflicted. Needed to bump them by one.
Bill Wendling [Wed, 12 Dec 2007 01:51:58 +0000 (01:51 +0000)]
Bit masks conflicted. Needed to bump them by one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44903 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoForgot to remove a register from the PHI-union after I'd determined that it
Owen Anderson [Wed, 12 Dec 2007 01:25:08 +0000 (01:25 +0000)]
Forgot to remove a register from the PHI-union after I'd determined that it
interfered with other registers.  Seems like that might be a good thing to do. :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd (very basic) bindings for ModuleProvider.
Gordon Henriksen [Wed, 12 Dec 2007 01:04:30 +0000 (01:04 +0000)]
Add (very basic) bindings for ModuleProvider.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44899 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBug fix. Only safe to perform extension uses optimization if the source of extension...
Evan Cheng [Wed, 12 Dec 2007 00:51:06 +0000 (00:51 +0000)]
Bug fix. Only safe to perform extension uses optimization if the source of extension is also defined in the same BB as the extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44896 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChanges from Curtis Dunham implementing lazy cycle detection algorithm.
Daniel Berlin [Wed, 12 Dec 2007 00:37:04 +0000 (00:37 +0000)]
Changes from Curtis Dunham implementing lazy cycle detection algorithm.
Changes from me implementing different way of representing points-to anything.
Changes from me that improve slightly on LCD.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44895 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIf deleting a reload instruction due to reuse (value is available in register R and...
Evan Cheng [Tue, 11 Dec 2007 23:36:57 +0000 (23:36 +0000)]
If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNeed to grow the indexed map. Added debug statements.
Bill Wendling [Tue, 11 Dec 2007 23:27:51 +0000 (23:27 +0000)]
Need to grow the indexed map. Added debug statements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSimplify slightly.
Bill Wendling [Tue, 11 Dec 2007 22:22:22 +0000 (22:22 +0000)]
Simplify slightly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove Trie::Edge class. Now edge labels are stored into nodes itself.
Anton Korobeynikov [Tue, 11 Dec 2007 21:55:38 +0000 (21:55 +0000)]
Remove Trie::Edge class. Now edge labels are stored into nodes itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44880 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore progress on StrongPHIElimination. Now we actually USE the DomForest!
Owen Anderson [Tue, 11 Dec 2007 20:12:11 +0000 (20:12 +0000)]
More progress on StrongPHIElimination.  Now we actually USE the DomForest!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBlark! How in the world did this work without this?!
Bill Wendling [Tue, 11 Dec 2007 19:40:06 +0000 (19:40 +0000)]
Blark! How in the world did this work without this?!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago- Update the virtual reg to machine instruction map when hoisting.
Bill Wendling [Tue, 11 Dec 2007 19:17:04 +0000 (19:17 +0000)]
- Update the virtual reg to machine instruction map when hoisting.
- Fix subtle bug when creating initially creating this map.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChecking for "zero operands" during the "CanHoistInst()" method isn't necessary
Bill Wendling [Tue, 11 Dec 2007 18:45:11 +0000 (18:45 +0000)]
Checking for "zero operands" during the "CanHoistInst()" method isn't necessary
because those with side effects will be caught by other checks in here.

Also, simplify the check for a BB in a sub loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAllow the JIT to encode MMX instructions
Nate Begeman [Tue, 11 Dec 2007 18:06:14 +0000 (18:06 +0000)]
Allow the JIT to encode MMX instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44869 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse correct member access operator.
Wojciech Matyjewicz [Tue, 11 Dec 2007 17:46:25 +0000 (17:46 +0000)]
Use correct member access operator.
(my test commit as well)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44868 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename these tests to use the appropriate suffixes.
Dan Gohman [Tue, 11 Dec 2007 15:55:52 +0000 (15:55 +0000)]
Rename these tests to use the appropriate suffixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44867 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse not instead of ignore when an exit status is expected to always
Dan Gohman [Tue, 11 Dec 2007 15:50:23 +0000 (15:50 +0000)]
Use not instead of ignore when an exit status is expected to always
be non-zero.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44866 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't redirect stderr when it isn't needed.
Dan Gohman [Tue, 11 Dec 2007 15:41:11 +0000 (15:41 +0000)]
Don't redirect stderr when it isn't needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44865 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix compilation.
Duncan Sands [Tue, 11 Dec 2007 12:20:47 +0000 (12:20 +0000)]
Fix compilation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44864 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate credits.
Christopher Lamb [Tue, 11 Dec 2007 09:32:07 +0000 (09:32 +0000)]
Update credits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44861 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd information on address space qualifiers for pointer types and global
Christopher Lamb [Tue, 11 Dec 2007 09:31:00 +0000 (09:31 +0000)]
Add information on address space qualifiers for pointer types and global
declarations to the LangRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44860 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRegenerate.
Christopher Lamb [Tue, 11 Dec 2007 09:02:08 +0000 (09:02 +0000)]
Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44859 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement address space attribute for LLVM pointer types. Address spaces are
Christopher Lamb [Tue, 11 Dec 2007 08:59:05 +0000 (08:59 +0000)]
Implement address space attribute for LLVM pointer types. Address spaces are
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.

This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.

In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.

LangRef updates are forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44858 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTeach VMCore to constant fold shufflevectors with constant operands.
Chris Lattner [Tue, 11 Dec 2007 07:49:37 +0000 (07:49 +0000)]
Teach VMCore to constant fold shufflevectors with constant operands.
This allows us to compile:

#include <emmintrin.h>
typedef __m128i VSInt16;
typedef short vSInt16 __attribute__ ((__vector_size__ (16)));
VSInt16 t3() {
  return (VSInt16)((vSInt16)_mm_set1_epi16(6518));
}

into:

_t3:
movaps LCPI1_0, %xmm0
ret

instead of:
_t3:
movl $6518, %eax
movd %eax, %xmm0
pextrw $0, %xmm0, %eax
xorps %xmm0, %xmm0
pinsrw $0, %eax, %xmm0
punpcklwd %xmm0, %xmm0
pshufd $0, %xmm0, %xmm0
ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44856 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement constant folding if vector<->vector bitcasts where the number
Chris Lattner [Tue, 11 Dec 2007 07:29:44 +0000 (07:29 +0000)]
Implement constant folding if vector<->vector bitcasts where the number
of source/dest elements changes.  This implements
test/Transforms/InstCombine/bitcast-vector-fold.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44855 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't have APInt.cpp depend upon DerivedTypes.h. This helps with splitting the
Reid Spencer [Tue, 11 Dec 2007 06:53:58 +0000 (06:53 +0000)]
Don't have APInt.cpp depend upon DerivedTypes.h. This helps with splitting the
Support libraries separately into their own module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44852 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd first and really dirty version of generic Trie structure
Anton Korobeynikov [Tue, 11 Dec 2007 06:53:44 +0000 (06:53 +0000)]
Add first and really dirty version of generic Trie structure

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44851 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosignificantly simplify some code, no functionality change.
Chris Lattner [Tue, 11 Dec 2007 06:07:39 +0000 (06:07 +0000)]
significantly simplify some code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44850 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorefactor some code, no functionality change.
Chris Lattner [Tue, 11 Dec 2007 05:55:02 +0000 (05:55 +0000)]
refactor some code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44849 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSwitch over to MachineLoopInfo.
Evan Cheng [Tue, 11 Dec 2007 02:09:15 +0000 (02:09 +0000)]
Switch over to MachineLoopInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44838 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPretty print shuffle mask operand.
Evan Cheng [Tue, 11 Dec 2007 02:08:35 +0000 (02:08 +0000)]
Pretty print shuffle mask operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44837 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago- Improved v8i16 shuffle lowering. It now uses pshuflw and pshufhw as much as
Evan Cheng [Tue, 11 Dec 2007 01:46:18 +0000 (01:46 +0000)]
- Improved v8i16 shuffle lowering. It now uses pshuflw and pshufhw as much as
possible before resorting to pextrw and pinsrw.
- Better codegen for v4i32 shuffles masquerading as v8i16 or v16i8 shuffles.
- Improves (i16 extract_vector_element 0) codegen by recognizing
  (i32 extract_vector_element 0) does not require a pextrw.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44836 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agox86 doesn't actually want to custom lower v3i32
Nate Begeman [Tue, 11 Dec 2007 01:41:33 +0000 (01:41 +0000)]
x86 doesn't actually want to custom lower v3i32

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44835 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCollectorMetadata and Collector are rejiggered to get along with
Gordon Henriksen [Tue, 11 Dec 2007 00:30:17 +0000 (00:30 +0000)]
CollectorMetadata and Collector are rejiggered to get along with
per-function collector model. Collector is now the factory for
CollectorMetadata, so the latter may be subclassed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44827 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProject file maintenance.
Gordon Henriksen [Tue, 11 Dec 2007 00:29:16 +0000 (00:29 +0000)]
Project file maintenance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44826 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove TargetData::hostIsLittleEndian out of line, which means we
Chris Lattner [Tue, 11 Dec 2007 00:28:59 +0000 (00:28 +0000)]
Move TargetData::hostIsLittleEndian out of line, which means we
don't have to #include config.h in it.  #including config.h breaks
other projects that have their own autoconf stuff and try to #include
the llvm headers.  One obscure example is llvm-gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44825 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdding Ocaml bindings for the bitreader as requested by Sarah
Gordon Henriksen [Tue, 11 Dec 2007 00:20:48 +0000 (00:20 +0000)]
Adding Ocaml bindings for the bitreader as requested by Sarah
Thompson. Usage should be something like this:

open Llvm
open Llvm_bitreader

match read_bitcode_file fn with
  | Bitreader_failure msg ->
      prerr_endline msg
  | Bitreader_success m ->
      ...;
      dispose_module m

Compile with: ocamlc llvm.cma llvm_bitreader.cma
              ocamlopt llvm.cmxa llvm_bitreader.cmxa

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44824 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHey, English is not my native language :)
Anton Korobeynikov [Mon, 10 Dec 2007 23:10:20 +0000 (23:10 +0000)]
Hey, English is not my native language :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44820 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoClarify the need of CFI() stuff
Anton Korobeynikov [Mon, 10 Dec 2007 23:08:35 +0000 (23:08 +0000)]
Clarify the need of CFI() stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44819 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProvide convenient way to disable CFI stuff for old/broken assemblers.
Anton Korobeynikov [Mon, 10 Dec 2007 23:04:38 +0000 (23:04 +0000)]
Provide convenient way to disable CFI stuff for old/broken assemblers.
Use it for Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44818 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
Chris Lattner [Mon, 10 Dec 2007 22:53:04 +0000 (22:53 +0000)]
Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe.  While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44817 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded two bounds checks to the BitVector class to detect
Ted Kremenek [Mon, 10 Dec 2007 22:28:35 +0000 (22:28 +0000)]
Added two bounds checks to the BitVector class to detect
out-of-bounds bit accesses.  The checks are only performed
in a Debug build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44815 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosplit isBinaryOp into a static and member version.
Chris Lattner [Mon, 10 Dec 2007 22:18:53 +0000 (22:18 +0000)]
split isBinaryOp into a static and member version.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44814 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix some wording.
John Criswell [Mon, 10 Dec 2007 20:26:29 +0000 (20:26 +0000)]
Fix some wording.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44810 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd StringPool + new CodeGen files to win32 build
Chuck Rose III [Mon, 10 Dec 2007 19:31:09 +0000 (19:31 +0000)]
Add StringPool + new CodeGen files to win32 build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44805 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDisable cfi directives for now, darwin does't support them.
Chris Lattner [Mon, 10 Dec 2007 19:10:18 +0000 (19:10 +0000)]
Disable cfi directives for now, darwin does't support them.
These should probably be something like:

  CFI(".cfi_def_cfa_offset 16\n")

where CFI is defined to a noop on darwin and other platforms
that don't support those directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44803 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake PruneEH update the nounwind/noreturn attributes
Duncan Sands [Mon, 10 Dec 2007 19:09:40 +0000 (19:09 +0000)]
Make PruneEH update the nounwind/noreturn attributes
on functions as it calculates them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44802 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix PR1836: in the interpreter, read and write apints
Duncan Sands [Mon, 10 Dec 2007 17:43:13 +0000 (17:43 +0000)]
Fix PR1836: in the interpreter, read and write apints
using the minimum possible number of bytes.  For little
endian targets run on little endian machines, apints are
stored in memory from LSB to MSB as before.  For big endian
targets on big endian machines they are stored from MSB to
LSB which wasn't always the case before (if the target and
host endianness doesn't match values are stored according
to the host's endianness).  Doing this requires knowing the
endianness of the host, which is determined when configuring -
thanks go to Anton for this.  Only having access to little
endian machines I was unable to properly test the big endian
part, which is also the most complicated...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44796 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAnd finally annotate X86-64 version of callback.
Anton Korobeynikov [Mon, 10 Dec 2007 15:27:07 +0000 (15:27 +0000)]
And finally annotate X86-64 version of callback.
All bad stuff from SSE version is implicitely inherited :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44794 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProvide annotation for SSE version of callback. It's even more
Anton Korobeynikov [Mon, 10 Dec 2007 15:13:55 +0000 (15:13 +0000)]
Provide annotation for SSE version of callback. It's even more
broken, because doesn't mark xmm regs properly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44793 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAnnotate JIT callback function with call frame infromation.
Anton Korobeynikov [Mon, 10 Dec 2007 14:54:42 +0000 (14:54 +0000)]
Annotate JIT callback function with call frame infromation.
This will allow us (theoretically) to unwind through JITer.
The code wasn't verified, so I'm pretty sure offsets are wrong :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44792 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIt looks like this has been broken for some time -
Duncan Sands [Mon, 10 Dec 2007 14:43:10 +0000 (14:43 +0000)]
It looks like this has been broken for some time -
get it to compile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44791 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoA little more progress on StrongPHIElimination, now that I have a better sense of
Owen Anderson [Mon, 10 Dec 2007 08:07:09 +0000 (08:07 +0000)]
A little more progress on StrongPHIElimination, now that I have a better sense of
how the CodeGen machinery works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44786 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImprove branch folding by recgonizing that explict successor relationships impact...
Christopher Lamb [Mon, 10 Dec 2007 07:24:06 +0000 (07:24 +0000)]
Improve branch folding by recgonizing that explict successor relationships impact the value of fall-through choices.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44785 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDelete the CollectorNamePool if it should become empty.
Gordon Henriksen [Mon, 10 Dec 2007 03:35:18 +0000 (03:35 +0000)]
Delete the CollectorNamePool if it should become empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44775 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a typo spotted by Nick Lewycky.
Gordon Henriksen [Mon, 10 Dec 2007 03:30:21 +0000 (03:30 +0000)]
Fix a typo spotted by Nick Lewycky.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44774 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdding a collector name attribute to Function in the IR. These
Gordon Henriksen [Mon, 10 Dec 2007 03:18:06 +0000 (03:18 +0000)]
Adding a collector name attribute to Function in the IR. These
methods are new to Function:

  bool hasCollector() const;
  const std::string &getCollector() const;
  void setCollector(const std::string &);
  void clearCollector();

The assembly representation is as such:

  define void @f() gc "shadow-stack" { ...

The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44769 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReverting dtor devirtualization patch.
Gordon Henriksen [Mon, 10 Dec 2007 02:14:30 +0000 (02:14 +0000)]
Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44760 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoremove some dead code.
Chris Lattner [Mon, 10 Dec 2007 01:51:38 +0000 (01:51 +0000)]
remove some dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44757 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix some warnings.
Chris Lattner [Mon, 10 Dec 2007 01:51:22 +0000 (01:51 +0000)]
fix some warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44756 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a big problem in the recent dtor refactoring work, now it passes 2007-11-19-Inlin...
Chris Lattner [Mon, 10 Dec 2007 01:48:29 +0000 (01:48 +0000)]
Fix a big problem in the recent dtor refactoring work, now it passes 2007-11-19-InlineAsm.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44755 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDevirtualizing Value destructor (PR889). Patch by Pawel Kunio!
Gordon Henriksen [Sun, 9 Dec 2007 22:46:10 +0000 (22:46 +0000)]
Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44747 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDuncan points out that the subtraction is unneeded since hte code
Chris Lattner [Sun, 9 Dec 2007 17:56:34 +0000 (17:56 +0000)]
Duncan points out that the subtraction is unneeded since hte code
knows the vector is not pow2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44740 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpgrading this test to 2.0 .ll syntax.
Gordon Henriksen [Sun, 9 Dec 2007 15:03:01 +0000 (15:03 +0000)]
Upgrading this test to 2.0 .ll syntax.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44738 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix PR1782, patch by Wojtek Matyjewicz!
Chris Lattner [Sun, 9 Dec 2007 07:35:13 +0000 (07:35 +0000)]
Fix PR1782, patch by Wojtek Matyjewicz!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44733 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a very silly typo.
Gordon Henriksen [Sun, 9 Dec 2007 01:12:08 +0000 (01:12 +0000)]
Fix a very silly typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44732 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix accidental commit by Bill.
Chris Lattner [Sun, 9 Dec 2007 00:27:38 +0000 (00:27 +0000)]
Fix accidental commit by Bill.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44729 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd support for splitting the operand of a return instruction.
Chris Lattner [Sun, 9 Dec 2007 00:06:19 +0000 (00:06 +0000)]
Add support for splitting the operand of a return instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44728 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReverting 44702. It wasn't correct to rename them.
Bill Wendling [Sat, 8 Dec 2007 23:58:46 +0000 (23:58 +0000)]
Reverting 44702. It wasn't correct to rename them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44727 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd many new cases to SplitResult. SplitResult now handles all the cases that Legali...
Chris Lattner [Sat, 8 Dec 2007 23:58:27 +0000 (23:58 +0000)]
add many new cases to SplitResult.  SplitResult now handles all the cases that LegalizeDAG does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44726 91177308-0d34-0410-b5e6-96231b3b80d8