Dan Gohman
02d1a7844a
Fix a typo in a comment.
...
llvm-svn: 37727
2007-06-26 00:43:18 +00:00
Chris Lattner
b4777f087a
silence warning when assertions are disabled.
...
llvm-svn: 37654
2007-06-19 06:40:46 +00:00
Dan Gohman
9e82064924
Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad
...
with a general target hook to identify rematerializable instructions. Some
instructions are only rematerializable with specific operands, such as loads
from constant pools, while others are always rematerializable. This hook
allows both to be identified as being rematerializable with the same
mechanism.
llvm-svn: 37644
2007-06-19 01:48:05 +00:00
Evan Cheng
a7ca624028
Replace TargetInstrInfo::CanBeDuplicated() with a M_NOT_DUPLICABLE bit.
...
llvm-svn: 37643
2007-06-19 01:26:51 +00:00
Christopher Lamb
f274efef9f
Add support to tablegen for specifying subregister classes on a per register class basis.
...
llvm-svn: 37572
2007-06-13 22:20:15 +00:00
Evan Cheng
452a818c6a
Add clobbersPred - instruction that clobbers condition code / register which are used to predicate instructions.
...
llvm-svn: 37465
2007-06-06 10:14:55 +00:00
Bill Wendling
6357bf20fa
Patches by Chuck Rose to unbreak V Studio builds.
...
Thanks Chuck!
llvm-svn: 37428
2007-06-04 23:52:59 +00:00
Dan Gohman
a23ef8a8f2
Remove the operator<< for MVT::ValueType in preparation for MVT::ValueType
...
being changed from an enum to an integer type, which can't have a custom
operator<< overload.
llvm-svn: 37412
2007-06-04 16:11:03 +00:00
Reid Spencer
c23c9fce34
The Intrinsic::getDeclaration function's Tys parameter only contains the
...
types of the iAny types involved in the overloaded intrinsic. Thus, we
can't use the argument number as the index but have to count them separately
in order to index Tys correctly. This patch rectifies this situation.
llvm-svn: 37296
2007-05-22 19:30:31 +00:00
Evan Cheng
b99726d7a0
Rename M_PREDICATED to M_PREDICABLE; opcode can be specified isPredicable without having a PredicateOperand.
...
llvm-svn: 37116
2007-05-16 20:45:24 +00:00
Chris Lattner
2b5badc0e1
Fix CodeGen/PowerPC/2007-05-14-InlineAsmSelectCrash.ll, the other recent
...
patches are also needed.
llvm-svn: 37070
2007-05-15 01:36:44 +00:00
Evan Cheng
a32dee205f
Added \!con(a,b) syntax to concatnate two dag fragments.
...
llvm-svn: 37063
2007-05-15 01:23:24 +00:00
Evan Cheng
c0fb94596a
Mark all (not just the first) predicate operand M_PREDICATE_OPERAND.
...
llvm-svn: 37061
2007-05-15 01:20:36 +00:00
Evan Cheng
b0925c0e49
PredicateOperand related bug fix.
...
llvm-svn: 37060
2007-05-15 01:19:51 +00:00
Evan Cheng
bc5c15276b
Remove duplicated line.
...
llvm-svn: 37040
2007-05-14 18:03:45 +00:00
Evan Cheng
5162f584c7
If a PredicateOperand has an empty ExecuteAlways field, treat it as if a normal operand for isel.
...
llvm-svn: 36946
2007-05-08 21:04:07 +00:00
Bill Wendling
e6182267d7
Add an "implies" field to features. This indicates that, if the current
...
feature is set, then the features in the implied list should be set also.
The opposite is also enforced: if a feature in the implied list isn't set,
then the feature that owns that implies list shouldn't be set either.
llvm-svn: 36756
2007-05-04 20:38:40 +00:00
Lauro Ramos Venancio
0974db9111
Make my proxy happy.
...
llvm-svn: 36665
2007-05-03 14:05:07 +00:00
Nate Begeman
fd788aafba
A bit of feedback from Chris that I missed; error rather than asserting.
...
llvm-svn: 36619
2007-05-01 06:08:36 +00:00
Nate Begeman
27a625a74b
llvm bug #1350 , parts 1, 2, and 3.
...
llvm-svn: 36618
2007-05-01 05:57:02 +00:00
Dan Gohman
2966c9072b
Update a comment to reflect recent changes in the type system.
...
llvm-svn: 36486
2007-04-26 19:43:14 +00:00
Lauro Ramos Venancio
83fc4f3c3c
bugfix: remember that ResNode was declared.
...
llvm-svn: 36477
2007-04-26 17:03:22 +00:00
Christopher Lamb
8996dce6ec
Fix generation of certain scheduler itineraries.
...
llvm-svn: 36338
2007-04-22 09:04:24 +00:00
Evan Cheng
f0c955b4dc
Bug fix; add super-registers sets.
...
llvm-svn: 36296
2007-04-21 00:55:29 +00:00
Lauro Ramos Venancio
2518889872
Implement "general dynamic", "initial exec" and "local exec" TLS models for
...
X86 32 bits.
llvm-svn: 36283
2007-04-20 21:38:10 +00:00
Evan Cheng
ac9fdde7f4
Add sub-registers sets.
...
llvm-svn: 36278
2007-04-20 21:13:46 +00:00
Reid Spencer
9c2eec377e
For PR1328:
...
Don't assert everytime an intrinsic name isn't recognized. Instead, make
the assert optional when callin getIntrinsicID(). This allows the assembler
to handle invalid intrinsic names gracefully.
llvm-svn: 36120
2007-04-16 06:54:34 +00:00
Tanya Lattner
c821a9ac44
Adding target triplet to be passed to database.
...
llvm-svn: 35958
2007-04-13 04:36:48 +00:00
Jeff Cohen
ba1c0cd4e9
Correctly report version of GCC used.
...
llvm-svn: 35866
2007-04-10 19:13:43 +00:00
Reid Spencer
e061303a9c
Update for PathWithStatus
...
llvm-svn: 35745
2007-04-07 19:49:35 +00:00
Reid Spencer
beeeeb1428
Terminate some lines that need to be.
...
llvm-svn: 35725
2007-04-07 05:20:07 +00:00
Reid Spencer
203524fe05
Reinstate the SVN capability without requiring Date::Parse. As before the
...
SVN Repository is only used if requested with -usesvn option otherwise it
uses CVS.
llvm-svn: 35721
2007-04-07 04:41:16 +00:00
Reid Spencer
12e2843475
Revert this until the Date::Parse module can be installed on the nightly
...
testers.
llvm-svn: 35657
2007-04-04 06:59:36 +00:00
Reid Spencer
d0b2dbfa03
Prepare for Subversion migration by implementing a -usesvn to tell the
...
script to to check out llvm and llvm-test from Subversion instead of CVS.
Without this option the script will continue to check out from CVS. To
specify the Subversion URL, set the SVNURL environment variable or pass
-svnurl followed by the URL. For now, -svnurl will default to Reid's
temporary (read-only, daily snapshot) SVN server. Try it out if you like!
llvm-svn: 35621
2007-04-03 08:28:44 +00:00
Reid Spencer
e67d0c226d
For PR1297:
...
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.
llvm-svn: 35539
2007-04-01 07:20:02 +00:00
Bill Wendling
ce43379aac
Add better support for keywords.
...
llvm-svn: 35386
2007-03-27 20:23:56 +00:00
Bill Wendling
98d2104c6f
Add support for the v1i64 type. This makes better code for this:
...
#include <mmintrin.h>
extern __m64 C;
void baz(__v2si *A, __v2si *B)
{
*A = C;
_mm_empty();
}
We get this:
_baz:
call "L1$pb"
"L1$pb":
popl %eax
movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
movq (%eax), %mm0
movl 4(%esp), %eax
movq %mm0, (%eax)
emms
ret
GCC gives us this:
_baz:
pushl %ebx
call L3
"L00000000001$pb":
L3:
popl %ebx
subl $8, %esp
movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
movl (%eax), %edx
movl 4(%eax), %ecx
movl 16(%esp), %eax
movl %edx, (%eax)
movl %ecx, 4(%eax)
emms
addl $8, %esp
popl %ebx
ret
llvm-svn: 35351
2007-03-26 07:53:08 +00:00
Duncan Sands
14b191c687
The -funcresolve and -raise options no longer exist.
...
llvm-svn: 35272
2007-03-22 21:06:50 +00:00
Evan Cheng
9d7d130835
Recognize target instruction flag 'isReMaterializable'.
...
llvm-svn: 35159
2007-03-19 06:20:37 +00:00
Anton Korobeynikov
ed4b303c10
Refactoring of formal parameter flags. Enable properly use of
...
zext/sext/aext stuff.
llvm-svn: 35008
2007-03-07 16:25:09 +00:00
Anton Korobeynikov
e7ec3bc7bc
Use new SDIselParamAttr enumeration. This removes "magick" constants
...
from formal attributes' flags processing.
llvm-svn: 34963
2007-03-06 08:12:33 +00:00
Chris Lattner
7fb0823a7b
rename some CCActions
...
llvm-svn: 34724
2007-02-28 05:29:06 +00:00
Chris Lattner
22778a3d1c
implement CCPromoteToType
...
llvm-svn: 34720
2007-02-28 04:43:48 +00:00
Chris Lattner
cbebe4600f
reapply
...
llvm-svn: 34697
2007-02-27 22:08:27 +00:00
Chris Lattner
bf5f3945fd
*** empty log message ***
...
llvm-svn: 34696
2007-02-27 22:05:51 +00:00
Evan Cheng
116ec30e4f
Backing out
...
CodeGenTarget.cpp updated: 1.82 -> 1.83
Record.cpp updated: 1.55 -> 1.56
Record.h updated: 1.59 -> 1.60
TableGen.cpp updated: 1.47 -> 1.48
It's missing CallingConvEmitter.h
llvm-svn: 34693
2007-02-27 21:44:08 +00:00
Chris Lattner
fa024e1ad1
initial support for calling convention generation, still unfinished.
...
llvm-svn: 34682
2007-02-27 20:43:37 +00:00
Chris Lattner
68a8bcce99
emit an enum value for the # of target registers.
...
llvm-svn: 34624
2007-02-26 03:34:38 +00:00
Chris Lattner
49e58cfe42
the lengths of the strings are known, just use memcmp
...
llvm-svn: 34321
2007-02-15 19:26:16 +00:00
Chris Lattner
1e92e06779
Implement Function::getIntrinsicID without it needing to call Value::getName,
...
which allocates a string. This speeds up instcombine on 447.dealII by 5%.
llvm-svn: 34318
2007-02-15 19:17:16 +00:00
Reid Spencer
09575bac2e
For PR1195:
...
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
llvm-svn: 34300
2007-02-15 03:39:18 +00:00
Reid Spencer
d84d35ba70
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293
2007-02-15 02:26:10 +00:00
Chris Lattner
a673023852
remove obsolete path
...
llvm-svn: 34273
2007-02-14 07:39:35 +00:00
Jim Laskey
2682ea616f
Automatically generating intrinsic declarations from Dan Gohman. Modified
...
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.
llvm-svn: 34008
2007-02-07 20:38:26 +00:00
Reid Spencer
008e65ff96
Set the new NO_INSTALL flag for build-only tools.
...
llvm-svn: 33967
2007-02-06 18:51:28 +00:00
Jim Laskey
132fb185ee
Error check and eliminate unnecessary value.
...
llvm-svn: 33966
2007-02-06 18:30:58 +00:00
Jim Laskey
207230b984
Regenerate.
...
llvm-svn: 33965
2007-02-06 18:20:07 +00:00
Jim Laskey
a9e7064774
Deemed too cute to live.
...
llvm-svn: 33964
2007-02-06 18:19:44 +00:00
Jim Laskey
f4163f9bbc
Regenerate.
...
llvm-svn: 33963
2007-02-06 18:03:31 +00:00
Jim Laskey
5aed30d5cf
Support var arg intrinsics.
...
llvm-svn: 33962
2007-02-06 18:02:54 +00:00
Reid Spencer
c04536470a
Use opt to generate the list of passes to run.
...
llvm-svn: 33903
2007-02-05 06:10:19 +00:00
Jim Laskey
73e79b5a43
Make the constant honest.
...
llvm-svn: 33557
2007-01-26 23:00:54 +00:00
Jim Laskey
214c582002
Files missing from LABEL check in.
...
llvm-svn: 33539
2007-01-26 17:29:20 +00:00
Chris Lattner
100602d756
Make tblgen error more useful. Patch by B. Scott Michel
...
llvm-svn: 33295
2007-01-17 07:45:12 +00:00
Reid Spencer
c35fec9567
Fix this tool for use on Darwin which requires the file to come after the
...
commands. Linux is more forgiving.
Patch by Gordon Henriksen. Thanks, Gordon!
llvm-svn: 33285
2007-01-17 03:38:22 +00:00
Reid Spencer
7dac4c31a4
Join two lines that caused awk to squak on some platforms.
...
llvm-svn: 33274
2007-01-16 22:41:12 +00:00
Reid Spencer
7a9c62baa6
For PR1064:
...
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.
This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
bits in an integer. The Type classes SubclassData field is used to
store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
64-bit integers. These are replaced with just IntegerType which is not
a primitive any more.
3. Adjust the rest of LLVM to account for this change.
Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types. Future increments
will rectify this situation.
llvm-svn: 33113
2007-01-12 07:05:14 +00:00
Reid Spencer
81accb5f08
Put in some needed \ at the end of lines!!!
...
llvm-svn: 33070
2007-01-11 06:51:56 +00:00
Reid Spencer
bc013ba367
For PR950:
...
Convert signed integer types to signless.
llvm-svn: 32786
2006-12-31 05:50:28 +00:00
Reid Spencer
f5165ac0d1
Remove some clutter and make it keep going instead of stopping at the
...
first difference.
llvm-svn: 32645
2006-12-18 00:37:37 +00:00
Jim Laskey
3f7d047a14
Ignore entries with blank names.
...
llvm-svn: 32491
2006-12-12 20:55:58 +00:00
Jim Laskey
8171e58bd9
Rollback changes to take a different tack.
...
llvm-svn: 32488
2006-12-12 19:26:50 +00:00
Jim Laskey
7c3cab9ddc
Honor the command line specification for machine type.
...
llvm-svn: 32483
2006-12-12 16:07:33 +00:00
Reid Spencer
d436ea5cb4
Provide a script that can track down which optimization pass causes
...
different code to be produced between two llvm builds that differe slightly.
This is useful in tracking down mis-optimization bugs.
llvm-svn: 32435
2006-12-11 17:42:12 +00:00
Reid Spencer
68acb20000
Allow the input of the test program to be specified.
...
Don't generate the reference output for each comparison.
llvm-svn: 32395
2006-12-09 04:42:33 +00:00
Reid Spencer
5c09dd74b9
Add the -ldl library option.
...
llvm-svn: 32369
2006-12-08 18:58:38 +00:00
Bill Wendling
9bfb1e1f29
What should be the last unnecessary <iostream>s in the library.
...
llvm-svn: 32333
2006-12-07 22:21:48 +00:00
Evan Cheng
8e94078483
Match TargetInstrInfo changes.
...
llvm-svn: 32107
2006-12-01 22:57:41 +00:00
Reid Spencer
6984a15600
Only show the first few lines of difference.
...
llvm-svn: 31901
2006-11-25 04:07:06 +00:00
Reid Spencer
17782030cf
Add an option to enable lli (interpreter mode) testing.
...
llvm-svn: 31899
2006-11-24 20:34:16 +00:00
Reid Spencer
fff57ce9cd
Stop early if there is no mis-optimization.
...
llvm-svn: 31893
2006-11-22 03:46:45 +00:00
Chris Lattner
55b8683d24
Fix PR1001, patch by Nikhil Patil!
...
llvm-svn: 31880
2006-11-20 18:54:33 +00:00
Reid Spencer
4924c53b5e
Make the awk filter print out which files its eliminating.
...
llvm-svn: 31851
2006-11-18 18:30:18 +00:00
Reid Spencer
2ca613bcad
This is a utility for preparing patches against LLVM. It runs cvs diff with
...
the correct options, places the patch content in order that makes sense for
review, and filters cruft out of the patch (like diffs in *.cvs files). It
produces both a NAME.patch.raw (unfiltered) and NAME.patch (filtered) file.
llvm-svn: 31850
2006-11-18 18:02:30 +00:00
Reid Spencer
170ff02764
Provide a list of gccld optimization switches.
...
llvm-svn: 31849
2006-11-18 17:14:09 +00:00
Evan Cheng
71adba6dce
Add opcode to TargetInstrDescriptor.
...
llvm-svn: 31804
2006-11-17 01:46:27 +00:00
Reid Spencer
b3030c42e0
Use a release version of bugpoint, if found. Include gccld passes.
...
llvm-svn: 31786
2006-11-16 18:32:47 +00:00
Chris Lattner
78a403f90e
Remove the isTwoAddress property from the CodeGenInstruction class. It should
...
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
llvm-svn: 31769
2006-11-15 23:23:02 +00:00
Chris Lattner
c94f214d22
ADd support for adding constraints to suboperands
...
llvm-svn: 31748
2006-11-15 02:38:17 +00:00
Chris Lattner
c75081b7a8
restore some 'magic' code that I removed: it is needed. Add comments explaining
...
why.
llvm-svn: 31743
2006-11-14 22:17:10 +00:00
Chris Lattner
c5dd5b11a4
minimal hack to get patterns whose result type is iPTR to be selected.
...
llvm-svn: 31742
2006-11-14 21:50:27 +00:00
Chris Lattner
75165d07a0
remove some dead code
...
llvm-svn: 31740
2006-11-14 21:41:35 +00:00
Chris Lattner
7c9f48cefb
Add support for nodes that return iPTR.
...
llvm-svn: 31739
2006-11-14 21:32:01 +00:00
Chris Lattner
110c777f2c
changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc
...
stores.
llvm-svn: 31738
2006-11-14 21:18:40 +00:00
Chris Lattner
f8c06b335d
Fix a bug handling nodes with variable arguments. The code was fixed to assume
...
that there were two input operands before the variable operand portion. This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.
Making this code more general allows elimination of the custom selection logic
for BCTRL.
llvm-svn: 31732
2006-11-14 18:41:38 +00:00
Reid Spencer
cac60e8eb4
Add some output so the user is informed while they wait.
...
llvm-svn: 31700
2006-11-13 16:08:51 +00:00
Reid Spencer
2e80be8251
Add -lstdc++ to the link line for C++ programs.
...
llvm-svn: 31678
2006-11-11 10:22:48 +00:00
Chris Lattner
ba7b3673f9
allow ptr_rc to explicitly appear in an instructions operand list, it doesn't
...
have to be a subpart of a complex operand.
llvm-svn: 31618
2006-11-10 02:01:40 +00:00
Evan Cheng
1698c2999c
Remove M_2_ADDR_FLAG.
...
llvm-svn: 31583
2006-11-09 02:22:54 +00:00
Reid Spencer
c6389c10cc
Don't run bugpoint if we can't find a misoptimization.
...
llvm-svn: 31582
2006-11-09 01:47:04 +00:00