Chris Lattner
49f7b69997
Remove the obsolete instr selector emitter
...
llvm-svn: 23894
2005-10-23 05:47:52 +00:00
Jim Laskey
a1beea6c7d
Sort the features and processor lists for the sake of search (and maintainers.)
...
llvm-svn: 23879
2005-10-22 07:59:56 +00:00
Jim Laskey
9ed9032e22
Plugin new subtarget backend into the build.
...
llvm-svn: 23870
2005-10-21 19:05:19 +00:00
Jim Laskey
cfda85ad91
New TableGen backends for subtarget information. Only command line stuff
...
active now. Scheduling itinerary next.
llvm-svn: 23869
2005-10-21 19:00:04 +00:00
Chris Lattner
8bda5afd91
Make tblgen emit:
...
tblgen: In ZAPNOTi: Cannot use 'IZAPX' in an input pattern!
for a bad pattern, instead of an ugly assertion.
llvm-svn: 23854
2005-10-21 01:19:59 +00:00
Chris Lattner
c9ad735e78
add support for literal immediates in patterns to match, allowing us to
...
write things like this:
def : Pat<(add GPRC:$in, 12),
(ADD12 GPRC:$in)>;
Andrew: if this isn't enough or doesn't work for you, please lemme know.
llvm-svn: 23819
2005-10-19 04:41:05 +00:00
Chris Lattner
7f6f565846
Add basic support for integer constants in pattern results.
...
llvm-svn: 23817
2005-10-19 04:30:56 +00:00
Chris Lattner
2ae2f99326
Fix some checking that was causing duraid to get a perplexing assertion
...
instead of a happy error message
llvm-svn: 23816
2005-10-19 04:12:14 +00:00
Chris Lattner
b8014e10ae
Add support for patterns that have physical registers in them. Testcase:
...
def : Pat<(trunc G8RC:$in),
(OR8To4 G8RC:$in, X0)>;
Even though this doesn't make any sense on PPC :)
llvm-svn: 23815
2005-10-19 02:07:26 +00:00
Chris Lattner
c8f899f98d
Asserting here is to violent
...
llvm-svn: 23814
2005-10-19 01:55:23 +00:00
Chris Lattner
8baf5043a8
Nate wants to define 'Pat's which turn into instructions that don't have
...
patterns. Certainly a logical request.
llvm-svn: 23810
2005-10-19 01:27:22 +00:00
Chris Lattner
ed653cbe43
Duraid pointed out that it is impolite to emit PPC:: into the IA64 backend
...
llvm-svn: 23780
2005-10-18 04:41:01 +00:00
Chris Lattner
825298b060
Make the generated code significantly more memory efficient, by using
...
SelectNodeTo instead of getTargetNode when possible.
llvm-svn: 23758
2005-10-16 01:41:58 +00:00
Chris Lattner
6b22d2554a
Implement the last major missing piece in the DAG isel generator: when emitting
...
a pattern match, make sure to emit the (minimal number of) type checks that
verify the pattern matches this specific instruction. This allows FMA32
patterns to not match double expressions for example.
llvm-svn: 23748
2005-10-15 21:34:21 +00:00
Chris Lattner
c4db8f4163
Now that we have int/fp lattice values, implement the SDTCisOpSmallerThanOp
...
type constraint. This lets tblgen realize that it doesn't need any dynamic
type checks for fextend/fround on PPC (and many other targets), because there
are only two fp types.
llvm-svn: 23730
2005-10-14 06:25:00 +00:00
Chris Lattner
ecaf56b21a
Fairly serious rework of the typing code to add new int/fp lattice values.
...
Overall, no functionality change yet though.
llvm-svn: 23729
2005-10-14 06:12:03 +00:00
Chris Lattner
cdf483556f
simplify the code a bit
...
llvm-svn: 23728
2005-10-14 05:08:37 +00:00
Chris Lattner
4892df38f3
Add basic support for recognizing a new SDTCisOpSmallerThanOp type constraint
...
llvm-svn: 23725
2005-10-14 04:53:53 +00:00
Chris Lattner
7b0275ba8c
Implement a couple of new (important) features.
...
1. If an operation has to be int or fp and the target only supports one
int or fp type, relize that the op has to have that type.
2. If a target has operations on multiple types, do not emit matching code
for patterns involving those operators, since we do not emit the code to
check for them yet. This prevents PPC from generating FP ops currently.
Also move some code around into more logical places.
llvm-svn: 23724
2005-10-14 04:11:13 +00:00
Chris Lattner
90c5b9c83c
Do not let getLegalValueTypes return a list with duplicates in it
...
llvm-svn: 23723
2005-10-14 03:54:49 +00:00
Chris Lattner
d4ff3c1324
Emit the value type for each register class.
...
llvm-svn: 23584
2005-10-02 06:23:37 +00:00
Chris Lattner
c9f4219cfc
Rename MRegisterDesc -> TargetRegisterDesc for consistency
...
llvm-svn: 23564
2005-09-30 17:49:27 +00:00
Chris Lattner
3e020bb619
remove some more initializers
...
llvm-svn: 23562
2005-09-30 17:41:05 +00:00
Chris Lattner
ddc69bbbba
trim down the target info structs now that we have a preferred spill register class for each callee save register
...
llvm-svn: 23560
2005-09-30 17:35:22 +00:00
Chris Lattner
da6fcc9f49
Compute a preferred spill register class for each callee-save register
...
llvm-svn: 23553
2005-09-30 06:44:45 +00:00
Chris Lattner
26f5fb1277
Fix a warning
...
llvm-svn: 23550
2005-09-30 06:09:50 +00:00
Chris Lattner
1916ef75cf
Regenerate
...
llvm-svn: 23549
2005-09-30 04:53:25 +00:00
Chris Lattner
b509577605
Refactor this a bit to move ParsingTemplateArgs to only apply to classes,
...
not defs.
Implement support for forward definitions of classes. This implements
TableGen/ForwardRef.td.
llvm-svn: 23548
2005-09-30 04:53:04 +00:00
Chris Lattner
20b0e3cee4
Regenerate
...
llvm-svn: 23546
2005-09-30 04:42:56 +00:00
Chris Lattner
ad61925e27
Generate a parse error instead of a checked exception if template args are
...
used on a def.
llvm-svn: 23545
2005-09-30 04:42:31 +00:00
Chris Lattner
6e60c8fe05
regenerate
...
llvm-svn: 23543
2005-09-30 04:11:27 +00:00
Chris Lattner
e04e1384fc
Refactor the grammar a bit to implement TableGen/ForwardRef.td
...
llvm-svn: 23542
2005-09-30 04:10:49 +00:00
Chris Lattner
2a6fd61dfc
allow regs to be in multiple reg classes
...
llvm-svn: 23540
2005-09-30 01:33:48 +00:00
Chris Lattner
366fe04301
Teach tablegen to reassociate operators when possible. This allows it to
...
find all of teh pattern matches for EQV from one definition
llvm-svn: 23529
2005-09-29 22:36:54 +00:00
Chris Lattner
e86824e57a
Teach tblgen to build permutations of instructions, so that the target author
...
doesn't have to specify them manually. It currently handles associativity,
e.g. knowing that (X*Y)+Z also matches X+(Y*Z) and will be extended in
the future.
It is smart enough to not introduce duplicate patterns or patterns that can
never match.
llvm-svn: 23526
2005-09-29 19:28:10 +00:00
Chris Lattner
492e70f4ec
add support for an associative marker
...
llvm-svn: 23502
2005-09-28 20:58:06 +00:00
Chris Lattner
8bb25cd68a
Emit an error if instructions or patterns are defined but can never match.
...
Currently we check that immediate values live on the RHS of commutative
operators. Defining ORI like this, for example:
def ORI : DForm_4<24, (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
"ori $dst, $src1, $src2",
[(set GPRC:$dst, (or immZExt16:$src2, GPRC:$src1))]>;
results in:
tblgen: In ORI: Instruction can never match: Immediate values must be on the RHS of commutative operators!
llvm-svn: 23501
2005-09-28 19:27:25 +00:00
Chris Lattner
f74c30c281
collect commutativity information
...
llvm-svn: 23499
2005-09-28 18:28:29 +00:00
Chris Lattner
3622f15491
Prefer cheaper patterns to more expensive ones. Print the costs to the generated
...
file
llvm-svn: 23492
2005-09-28 17:57:56 +00:00
Chris Lattner
75b4c5d868
Select Constant nodes to TargetConstant nodes
...
llvm-svn: 23488
2005-09-28 16:58:06 +00:00
Chris Lattner
d455c36c91
memoize the assert results
...
llvm-svn: 23457
2005-09-26 22:10:24 +00:00
Chris Lattner
c9153266c6
Emit the switch stmt cases in alphabetical order instead of pointer order,
...
which is not stable.
llvm-svn: 23456
2005-09-26 21:59:35 +00:00
Chris Lattner
d5de8544f8
implement a fixme: only select values once, even if used multiple times.
...
llvm-svn: 23454
2005-09-26 21:53:26 +00:00
Jeff Cohen
23b1d28e69
Fix VC++ build errors.
...
llvm-svn: 23431
2005-09-25 19:04:43 +00:00
Chris Lattner
cc1d38160d
memoize translations
...
llvm-svn: 23419
2005-09-24 00:50:51 +00:00
Chris Lattner
0afb14cade
Teach the DAG isel generator to emit code that creates nodes.
...
Fix a few corner cases parsing things like (i32 imm:$foo)
llvm-svn: 23417
2005-09-24 00:40:24 +00:00
Chris Lattner
cd093e868e
Emit better code (no more copies for var references), and support DAG patterns
...
(e.g. things like rotates).
llvm-svn: 23416
2005-09-23 23:16:51 +00:00
Chris Lattner
8ffb99b4fe
Fix a fixme by passing around SDOperand's instead of SDNode*'s
...
llvm-svn: 23415
2005-09-23 21:53:45 +00:00
Chris Lattner
cc8a564cb1
Emit code that matches the incoming DAG pattern and checks predicates.
...
This does not check that types match yet, but PPC only has one integer type
;-).
This also doesn't have the code to build the resultant dag.
llvm-svn: 23414
2005-09-23 21:33:23 +00:00
Chris Lattner
323a47970e
emit information about the order patterns are to be matched.
...
llvm-svn: 23413
2005-09-23 20:52:47 +00:00
Chris Lattner
abb430bad2
start filling in the switch stmt
...
llvm-svn: 23412
2005-09-23 19:36:15 +00:00
Chris Lattner
7884fffb00
Fix a minor bug, add comments
...
llvm-svn: 23370
2005-09-16 00:29:46 +00:00
Chris Lattner
59e96143a2
teach the type inference code how to infer types for instructions and node
...
xforms. Run type inference on result patterns, so we always have fully typed
results (and to catch errors in .td files).
llvm-svn: 23369
2005-09-15 22:23:50 +00:00
Chris Lattner
fedd9a5e1d
put instructions into a map instead of a vector for quick lookup
...
llvm-svn: 23368
2005-09-15 21:57:35 +00:00
Chris Lattner
f38ce8f756
when parsing instructions remember information about the types taken and
...
returned.
llvm-svn: 23367
2005-09-15 21:51:12 +00:00
Chris Lattner
a0a986c9ae
Start parsing "Pattern" nodes
...
llvm-svn: 23365
2005-09-15 21:42:00 +00:00
Chris Lattner
f79ad4cb32
rename a couple of methods, add structure for pattern parsing
...
llvm-svn: 23364
2005-09-15 02:38:02 +00:00
Chris Lattner
a155256a71
Verify that xform functions only occur in logical places
...
llvm-svn: 23363
2005-09-14 23:05:13 +00:00
Chris Lattner
991c7c973a
Promote xform fns to be explicit nodes in result patterns, and clean off
...
predicates since they will have already matched at this point.
llvm-svn: 23362
2005-09-14 23:01:59 +00:00
Chris Lattner
bc7aabce12
start building the instruction dest pattern correctly. Change the xform
...
functions to preserve the Record for the xform instead of making it into a
function name.
llvm-svn: 23361
2005-09-14 22:55:26 +00:00
Chris Lattner
e389c6154e
catch unnamed inputs
...
llvm-svn: 23360
2005-09-14 22:06:36 +00:00
Chris Lattner
030f876cf2
check that there are no unexpected operands
...
llvm-svn: 23359
2005-09-14 21:59:34 +00:00
Chris Lattner
3ced3f8b82
force all instruction operands to be named.
...
llvm-svn: 23358
2005-09-14 21:13:50 +00:00
Chris Lattner
f02994d782
Check that operands have unique names. REJECT instructions with broken operand
...
lists: only don't parse them if they are entirely missing (sparcv9).
llvm-svn: 23355
2005-09-14 21:05:02 +00:00
Chris Lattner
24ae3494f0
fix a broke range check
...
llvm-svn: 23354
2005-09-14 21:04:12 +00:00
Chris Lattner
3ba60bf644
Parse significantly more of the instruction pattern, now collecting and
...
verifying information about the operands.
llvm-svn: 23353
2005-09-14 20:53:42 +00:00
Chris Lattner
22e60c99ce
Verify that set destinations occur first in the instruction operand list.
...
llvm-svn: 23351
2005-09-14 18:19:25 +00:00
Chris Lattner
fcffc98b05
add an accessor
...
llvm-svn: 23349
2005-09-14 18:02:53 +00:00
Chris Lattner
1c8d6ce015
remove some code that isn't ready for prime time
...
llvm-svn: 23346
2005-09-14 06:03:10 +00:00
Chris Lattner
3361eab530
Switch to a slightly more structured representation for instructions
...
llvm-svn: 23345
2005-09-14 04:03:16 +00:00
Chris Lattner
4cfcb544bf
Add some more checking/verification code
...
llvm-svn: 23344
2005-09-14 02:11:12 +00:00
Chris Lattner
4c7b604091
start parsing instructions into patterns, start doing many more checks of
...
'set's.
llvm-svn: 23343
2005-09-14 00:09:24 +00:00
Chris Lattner
bb9b01644e
don't emit the namespace inside the class!
...
llvm-svn: 23341
2005-09-13 22:05:02 +00:00
Chris Lattner
70a7234111
Emit code suitable for emission into the ISel class, allowing us to use/define
...
methods.
llvm-svn: 23340
2005-09-13 22:03:37 +00:00
Chris Lattner
3556d849da
continue xform function parsing
...
llvm-svn: 23338
2005-09-13 21:59:15 +00:00
Chris Lattner
2617de498d
Start parsing node transformation information
...
llvm-svn: 23337
2005-09-13 21:51:00 +00:00
Chris Lattner
ae939eb6bb
Add a new Record::getValueAsCode method to mirror the other getValueAs*
...
methods. Use it to simplify some code.
llvm-svn: 23336
2005-09-13 21:44:28 +00:00
Chris Lattner
f365e25a5c
completely eliminate TreePattern::PatternType
...
llvm-svn: 23335
2005-09-13 21:20:49 +00:00
Chris Lattner
d0c7a5eeb7
Regenerate
...
llvm-svn: 23311
2005-09-12 05:30:06 +00:00
Chris Lattner
564d240799
Rearrange two rules, which apparently makes some versions of bison happier.
...
llvm-svn: 23310
2005-09-12 05:29:43 +00:00
Jeff Cohen
0dce12dd90
Fix miscellaneous Visual Studio build problems.
...
llvm-svn: 23307
2005-09-10 02:00:02 +00:00
Chris Lattner
ce2173d098
add an accessor to provide more checking
...
llvm-svn: 23289
2005-09-09 01:15:01 +00:00
Chris Lattner
7a82c06f34
use new accessors to simplify code. Add checking to make sure top-level instr
...
definitions are void
llvm-svn: 23288
2005-09-09 01:11:44 +00:00
Chris Lattner
91d8672be1
add some accessors
...
llvm-svn: 23287
2005-09-09 01:11:17 +00:00
Chris Lattner
debd6e95ab
Fix incorrect comment
...
llvm-svn: 23285
2005-09-08 23:26:30 +00:00
Chris Lattner
d7d31f3b06
Implement a complete type inference system for dag patterns, based on the
...
constraints defined in the DAG node definitions in the .td files. This
allows us to infer (and check!) the types for all nodes in the current
ppc .td file. For example, instead of:
Inst pattern EQV: (set GPRC:i32:$rT, (xor (xor GPRC:i32:$rA, GPRC:i32:$rB), (imm)<<Predicate_immAllOnes>>))
we now fully infer:
Inst pattern EQV: (set:void GPRC:i32:$rT, (xor:i32 (xor:i32 GPRC:i32:$rA, GPRC:i32:$rB), (imm:i32)<<Predicate_immAllOnes>>))
from: (set GPRC:$rT, (not (xor GPRC:$rA, GPRC:$rB)))
llvm-svn: 23284
2005-09-08 23:22:48 +00:00
Chris Lattner
cee994b464
Compute the value types that are natively supported by a target.
...
llvm-svn: 23282
2005-09-08 21:43:21 +00:00
Chris Lattner
1c33104010
Parse information about type constraints on SDNodes
...
llvm-svn: 23281
2005-09-08 21:27:15 +00:00
Chris Lattner
a3b89dfcef
use node info in the one place we currently use it
...
llvm-svn: 23280
2005-09-08 21:04:46 +00:00
Chris Lattner
35bcd1488a
start parsing SDNode info records
...
llvm-svn: 23279
2005-09-08 21:03:01 +00:00
Chris Lattner
07f1e4597e
Fix indentation
...
llvm-svn: 23276
2005-09-08 19:47:28 +00:00
Chris Lattner
bd6b164965
regenerate
...
llvm-svn: 23275
2005-09-08 18:48:47 +00:00
Chris Lattner
972cccd77a
Add support for automatically created anonymous definitions.
...
This implements Regression/TableGen/AnonDefinitionOnDemand.td
llvm-svn: 23274
2005-09-08 18:48:23 +00:00
Chris Lattner
5a699e621f
regenerate
...
llvm-svn: 23271
2005-09-08 18:22:57 +00:00
Chris Lattner
8a41b214b3
Tabs to spaces.
...
llvm-svn: 23270
2005-09-08 18:22:35 +00:00
Chris Lattner
399f59f643
Keep names even when inlining. This allows us to realize that ADDI is:
...
(set GPRC:i32:$rD, (add GPRC:i32:$rA, (imm)<<Predicate_immSExt16>>:$imm))
not:
(set GPRC:i32:$rD, (add GPRC:i32:$rA, (imm)<<Predicate_immSExt16>>))
(we keep the ":$imm")
llvm-svn: 23269
2005-09-08 17:45:12 +00:00
Chris Lattner
d2a5b366f5
Initial cut of the dag isel generator. This is still very much a work in
...
progress. It correctly parses instructions and pattern fragments and glues
together pattern fragments into instructions.
The only code it generates currently is some boilerplate code for things
like the EntryNode.
llvm-svn: 23261
2005-09-07 23:44:43 +00:00
Chris Lattner
c59a1dbce2
Rename a class. These files are being migrated to the new isel and I want to
...
reuse the names
llvm-svn: 23252
2005-09-06 22:51:34 +00:00
Chris Lattner
784e44443d
regenerate
...
llvm-svn: 23249
2005-09-06 21:23:27 +00:00
Chris Lattner
ab9eba1014
Tighten up the specification to allow TableGen/nested-comment.td to pass
...
(fixing a bug where / in a /* */ comment would cause it to not close).
llvm-svn: 23248
2005-09-06 21:23:09 +00:00
Chris Lattner
90d000417f
Add an option and stuff implementation of a dag isel emitter
...
llvm-svn: 23236
2005-09-03 01:14:03 +00:00
Reid Spencer
dfb3fb4a25
Implement PR614:
...
These changes modify the makefiles so that the output of flex and bison are
placed in the SRC directory, not the OBJ directory. It is intended that they
be checked in as any other LLVM source so that platforms without convenient
access to flex/bison can be compiled. From now on, if you change a .y or
.l file you *must* also commit the generated .cpp and .h files.
llvm-svn: 23115
2005-08-27 18:50:39 +00:00
Chris Lattner
c6a0338c04
spell this right
...
llvm-svn: 23099
2005-08-26 20:55:40 +00:00
Chris Lattner
63dc7f569a
spell this variable right
...
llvm-svn: 23095
2005-08-26 20:42:52 +00:00
Chris Lattner
3d9fbefbf7
Expose a new flag to TargetInstrInfo
...
llvm-svn: 23094
2005-08-26 20:40:46 +00:00
Chris Lattner
c36c9bdb5d
add a marker at the end of the instruction enum list
...
llvm-svn: 23090
2005-08-26 20:17:00 +00:00
Chris Lattner
96d0234845
Emit this:
...
static const TargetOperandInfo OperandInfo6[] = { { &PPC32::CRRCRegClass }, { 0 }, };
instead of this:
static const TargetOperandInfo OperandInfo6[] = { { PPC32::CRRCRegisterClass }, { 0 }, };
For operand information, which does not require dynamic (startup-time)
initialization.
llvm-svn: 22931
2005-08-19 20:29:14 +00:00
Chris Lattner
8ed3d0a0ce
Expose the derived register classes to the public header, allowing them
...
to be accessed.
llvm-svn: 22930
2005-08-19 20:23:42 +00:00
Chris Lattner
73ec2cb0f5
Split register class "Methods" into MethodProtos and MethodBodies
...
llvm-svn: 22928
2005-08-19 19:12:51 +00:00
Chris Lattner
74f60c306d
Refactor to use Target.getRegisterClasses consistently, which provides
...
anonymous regclass definition renaming.
Change the generated code to emit register classes as properly namespace
qualified entities like everything else.
expose the actual class definition as an object, though this isn't quite
usable yet.
llvm-svn: 22920
2005-08-19 18:47:59 +00:00
Chris Lattner
d02bd5bb05
Emit real operand info for instructions. This currently works but is bad
...
in one way: the generated tables require dynamic initialization for the
register classes. This will be fixed in a future patch.
llvm-svn: 22919
2005-08-19 18:46:26 +00:00
Chris Lattner
418d8cfcfe
Read the namespace field from register classes
...
llvm-svn: 22918
2005-08-19 18:45:20 +00:00
Chris Lattner
f9b2edb91f
add a setName method to record
...
llvm-svn: 22912
2005-08-19 17:58:49 +00:00
Chris Lattner
ac284259ac
Add a setName method to Record.
...
llvm-svn: 22911
2005-08-19 17:58:11 +00:00
Chris Lattner
220d00109b
For now, just emit empty operand info structures.
...
llvm-svn: 22910
2005-08-19 16:57:28 +00:00
Chris Lattner
0899614152
Fix a problem jeffc noticed
...
llvm-svn: 22903
2005-08-19 06:16:04 +00:00
Chris Lattner
04a5ae3f71
The code emitter generator only supports targets with 32-bit instruction
...
words. There is no way for one of these targets to have a > 32-bit immediate!
llvm-svn: 22897
2005-08-19 01:04:33 +00:00
Chris Lattner
511ee687e5
now that all of the targets are clean w.r.t. the number of operands for each
...
instruction defined, actually emit this to the InstrInfoDescriptor, which
allows an assert in the machineinstrbuilder to do some checking for us,
and is required by the dag->dag emitter
llvm-svn: 22895
2005-08-19 00:59:49 +00:00
Chris Lattner
17727bad02
Figure out how many operands each instruction has, keep track of whether
...
or not it's variable.
llvm-svn: 22885
2005-08-18 23:38:41 +00:00
Chris Lattner
b015303c5e
revert this change, which causes breakage, temporarily
...
llvm-svn: 22880
2005-08-18 22:12:31 +00:00
Chris Lattner
99df668f48
When emitting implicit use/def lists, only emit each unique list once. Though
...
LLVM is able to merge identical static const globals, GCC isn't, and this caused
some bloat in the generated data. This has a marginal effect on PPC, shrinking
the implicit sets from 10->4, but shrinks X86 from 179 to 23, a much bigger
reduction.
This should speed up the register allocator as well by reducing the dcache
footprint for this static data.
llvm-svn: 22879
2005-08-18 21:36:47 +00:00
Chris Lattner
6f52a04fc7
Fill in the numOperands field of the TargetInstrDescriptor struct from the
...
.td file.
llvm-svn: 22873
2005-08-18 19:45:37 +00:00
Jeff Cohen
5f4ef3c5a8
Eliminate all remaining tabs and trailing spaces.
...
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Chris Lattner
3a6a4d3707
Fix PR595: These error messages should not be looking at CGI.Name, they
...
should be looking at CGI.TheDef->getName().
llvm-svn: 22445
2005-07-15 22:43:04 +00:00
Nate Begeman
4f229d5197
Add support for a TODO; instructions in .td files can now have arguments
...
printed as part of the opcode. This allows something like
cmp${cc}ss in the x86 backed to be printed as cmpltss, cmpless, etc.
depending on what the value of $cc is.
llvm-svn: 22439
2005-07-14 22:50:30 +00:00
Jeff Cohen
88e7b7288a
Eliminate tabs and trailing spaces
...
llvm-svn: 21441
2005-04-22 04:13:13 +00:00
Misha Brukman
650ba8eb56
Remove trailing whitespace
...
llvm-svn: 21428
2005-04-22 00:00:37 +00:00
Chris Lattner
14db4a2895
ignore generated files
...
llvm-svn: 21362
2005-04-19 15:34:36 +00:00
Chris Lattner
b17483028f
fix bogus warning
...
llvm-svn: 21361
2005-04-19 15:32:30 +00:00
Chris Lattner
ef94374a1c
Major change to tblgen: instead of resolving values every time a class is
...
finished up, only resolve fully when the def is defined. This allows things
to be changed and all uses to be propagated through. This implements
TableGen/LazyChange.td and fixes TemplateArgRename.td in the process.
None of the .td files used in LLVM backends are changed at all by this
patch.
llvm-svn: 21344
2005-04-19 03:36:21 +00:00
Chris Lattner
3ff0e11294
implementing shifting of literal integers
...
llvm-svn: 21336
2005-04-19 01:17:35 +00:00
Chris Lattner
101fc501d0
Add initial lexer and parser support for shifting values. Every use of this
...
will lead to it being rejected though.
llvm-svn: 21335
2005-04-19 01:11:03 +00:00
Chris Lattner
97cf8fd4a9
Minor fix.
...
llvm-svn: 19761
2005-01-22 20:59:38 +00:00
Chris Lattner
59a7f5c2f3
This is the final big of factoring. This shares cases in suboperand
...
differences, which means that identical instructions (after stripping off
the first literal string) do not run any different code at all. On the X86,
this turns this code:
switch (MI->getOpcode()) {
case X86::ADC32mi: printOperand(MI, 4, MVT::i32); break;
case X86::ADC32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::ADC32mr: printOperand(MI, 4, MVT::i32); break;
case X86::ADD32mi: printOperand(MI, 4, MVT::i32); break;
case X86::ADD32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::ADD32mr: printOperand(MI, 4, MVT::i32); break;
case X86::AND32mi: printOperand(MI, 4, MVT::i32); break;
case X86::AND32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::AND32mr: printOperand(MI, 4, MVT::i32); break;
case X86::CMP32mi: printOperand(MI, 4, MVT::i32); break;
case X86::CMP32mr: printOperand(MI, 4, MVT::i32); break;
case X86::MOV32mi: printOperand(MI, 4, MVT::i32); break;
case X86::MOV32mr: printOperand(MI, 4, MVT::i32); break;
case X86::OR32mi: printOperand(MI, 4, MVT::i32); break;
case X86::OR32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::OR32mr: printOperand(MI, 4, MVT::i32); break;
case X86::ROL32mi: printOperand(MI, 4, MVT::i8); break;
case X86::ROR32mi: printOperand(MI, 4, MVT::i8); break;
case X86::SAR32mi: printOperand(MI, 4, MVT::i8); break;
case X86::SBB32mi: printOperand(MI, 4, MVT::i32); break;
case X86::SBB32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::SBB32mr: printOperand(MI, 4, MVT::i32); break;
case X86::SHL32mi: printOperand(MI, 4, MVT::i8); break;
case X86::SHLD32mrCL: printOperand(MI, 4, MVT::i32); break;
case X86::SHR32mi: printOperand(MI, 4, MVT::i8); break;
case X86::SHRD32mrCL: printOperand(MI, 4, MVT::i32); break;
case X86::SUB32mi: printOperand(MI, 4, MVT::i32); break;
case X86::SUB32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::SUB32mr: printOperand(MI, 4, MVT::i32); break;
case X86::TEST32mi: printOperand(MI, 4, MVT::i32); break;
case X86::TEST32mr: printOperand(MI, 4, MVT::i32); break;
case X86::TEST8mi: printOperand(MI, 4, MVT::i8); break;
case X86::XCHG32mr: printOperand(MI, 4, MVT::i32); break;
case X86::XOR32mi: printOperand(MI, 4, MVT::i32); break;
case X86::XOR32mi8: printOperand(MI, 4, MVT::i8); break;
case X86::XOR32mr: printOperand(MI, 4, MVT::i32); break;
}
into this:
switch (MI->getOpcode()) {
case X86::ADC32mi:
case X86::ADC32mr:
case X86::ADD32mi:
case X86::ADD32mr:
case X86::AND32mi:
case X86::AND32mr:
case X86::CMP32mi:
case X86::CMP32mr:
case X86::MOV32mi:
case X86::MOV32mr:
case X86::OR32mi:
case X86::OR32mr:
case X86::SBB32mi:
case X86::SBB32mr:
case X86::SHLD32mrCL:
case X86::SHRD32mrCL:
case X86::SUB32mi:
case X86::SUB32mr:
case X86::TEST32mi:
case X86::TEST32mr:
case X86::XCHG32mr:
case X86::XOR32mi:
case X86::XOR32mr: printOperand(MI, 4, MVT::i32); break;
case X86::ADC32mi8:
case X86::ADD32mi8:
case X86::AND32mi8:
case X86::OR32mi8:
case X86::ROL32mi:
case X86::ROR32mi:
case X86::SAR32mi:
case X86::SBB32mi8:
case X86::SHL32mi:
case X86::SHR32mi:
case X86::SUB32mi8:
case X86::TEST8mi:
case X86::XOR32mi8: printOperand(MI, 4, MVT::i8); break;
}
After this, the generated asmwriters look pretty much as though they were
generated by hand. This shrinks the X86 asmwriter.inc files from 55101->39669
and 55429->39551 bytes each, and PPC from 16766->12859 bytes.
llvm-svn: 19760
2005-01-22 20:31:17 +00:00
Chris Lattner
92275bb6bb
Implement *even more* factoring. In particular, if all of the instruction
...
strings starts out with a constant string, we emit the string first, using
a table lookup (instead of a switch statement).
Because this is usually the opcode portion of the asm string, the differences
between the instructions have now been greatly reduced. This allows many
more case statements to be grouped together.
This patch also allows instruction cases to be grouped together when the
instruction patterns are exactly identical (common after the opcode string
has been ripped off), and when the differing operand is a MachineInstr
operand that needs to be formatted.
The end result of this is a mean and lean generated AsmPrinter!
llvm-svn: 19759
2005-01-22 19:22:23 +00:00
Chris Lattner
945e8655dd
Refactor code for numbering instructions into CodeGenTarget.
...
llvm-svn: 19758
2005-01-22 18:58:51 +00:00
Jeff Cohen
da636b3783
Fix VC++ compilation error
...
llvm-svn: 19757
2005-01-22 18:50:10 +00:00
Chris Lattner
9ceb7c8f23
Implement factoring of instruction pattern strings. In particular, instead of
...
emitting code like this:
case PPC::ADD: O << "add "; printOperand(MI, 0, MVT::i64); O << ", "; prin
tOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << '\n
'; break;
case PPC::ADDC: O << "addc "; printOperand(MI, 0, MVT::i64); O << ", "; pr
intOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << '
\n'; break;
case PPC::ADDE: O << "adde "; printOperand(MI, 0, MVT::i64); O << ", "; pr
intOperand(MI, 1, MVT::i64); O << ", "; printOperand(MI, 2, MVT::i64); O << '
\n'; break;
...
Emit code like this:
case PPC::ADD:
case PPC::ADDC:
case PPC::ADDE:
...
switch (MI->getOpcode()) {
case PPC::ADD: O << "add "; break;
case PPC::ADDC: O << "addc "; break;
case PPC::ADDE: O << "adde "; break;
...
}
printOperand(MI, 0, MVT::i64);
O << ", ";
printOperand(MI, 1, MVT::i64);
O << ", ";
printOperand(MI, 2, MVT::i64);
O << "\n";
break;
This shrinks the PPC asm writer from 24785->15205 bytes (even though the new
asmwriter has much more whitespace than the old one), and the X86 printers shrink
quite a bit too. The important implication of this is that GCC no longer hits swap
when building the PPC backend in optimized mode. Thus this fixes PR448.
-Chris
llvm-svn: 19755
2005-01-22 18:38:13 +00:00
Chris Lattner
b6f5d9a82a
Fix the ::: problem
...
llvm-svn: 19754
2005-01-22 18:18:59 +00:00
Chris Lattner
3baf682110
Minor refactoring, no functionality change.
...
llvm-svn: 19753
2005-01-22 17:40:38 +00:00
Chris Lattner
0c23ba5c0f
Seperate asmstring parsing from emission. This allows the code to be simpler
...
and more understandable. It also allows us to do simple things like fold
consequtive literal strings together. For example, instead of emitting this
for the X86 backend:
O << "adc" << "l" << " ";
we now generate this:
O << "adcl ";
*whoa* :)
This shrinks the X86 asmwriters from 62729->58267 and 65176->58644 bytes
for the intel/att asm writers respectively.
llvm-svn: 19749
2005-01-22 17:32:42 +00:00
Andrew Lenharth
67e2e21353
make double-dollar properly escape asmstrings
...
llvm-svn: 19740
2005-01-22 00:35:22 +00:00
Chris Lattner
733c82bfbf
Expose isConvertibleToThreeAddress and isCommutable bits to the code generator.
...
llvm-svn: 19243
2005-01-02 02:29:04 +00:00
Reid Spencer
1c48c2deee
For PR387:
...
Make this compile without warning when -Woverloaded-virtual is used.
llvm-svn: 18588
2004-12-06 23:42:37 +00:00
Reid Spencer
b2d0fa0823
Fix usage of changed function prototype
...
llvm-svn: 17798
2004-11-14 22:30:54 +00:00
Chris Lattner
429aaa5855
Quiet VC++ warnings
...
llvm-svn: 17484
2004-11-05 04:50:59 +00:00
Reid Spencer
f88808ae43
Internalize variable names to prevent recursive assignment. Cleanup docs.
...
llvm-svn: 17359
2004-10-30 09:19:36 +00:00
Reid Spencer
57cbe39d1e
Change Library Names Not To Conflict With Others When Installed
...
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Chris Lattner
7dfc2d29ac
Convert 'struct' to 'class' in various places to adhere to the coding standards
...
and work better with VC++. Patch contributed by Morten Ofstad!
llvm-svn: 17281
2004-10-27 16:14:51 +00:00
Chris Lattner
87a1061559
Make VC happier, patch contributed by Morten Ofstad
...
llvm-svn: 17179
2004-10-23 04:58:50 +00:00
Reid Spencer
5fd95ce095
We're not doing automake any more
...
llvm-svn: 17168
2004-10-22 21:02:23 +00:00
Reid Spencer
c1c320c335
We won't use automake
...
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer
6a11a75f31
Initial automake generated Makefile template
...
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Misha Brukman
8393c15b28
* Factor out (into new fn) a loop emitting operand shifts into the instruction
...
* Reverse instruction bit components for a LittleEndian-style encoding
* Fix some comments and spacing
llvm-svn: 16975
2004-10-14 05:53:01 +00:00
Misha Brukman
243ded5e1a
* Add option to read isLittleEndianEncoding for InstrInfo classes
...
* Doxygen-ify some function comments
llvm-svn: 16974
2004-10-14 05:50:43 +00:00
Chris Lattner
ac1a547a38
Patch to make VS happier, thanks to Morten Ofstad for pointing this out.
...
llvm-svn: 16956
2004-10-13 15:25:46 +00:00
Reid Spencer
26bfe011f8
Updates for changes in Makefile rules.
...
llvm-svn: 16951
2004-10-13 11:48:50 +00:00
Chris Lattner
5499551206
Don't emit the method into the llvm namespace, let the #includer decide where it goes
...
llvm-svn: 16934
2004-10-12 16:21:18 +00:00
Reid Spencer
b84cbf2725
Initial version of automake Makefile.am file.
...
llvm-svn: 16885
2004-10-10 20:43:57 +00:00
Misha Brukman
41f9f29996
Properly `quote' names, and don't forget to add the ending quote!
...
llvm-svn: 16838
2004-10-08 14:59:05 +00:00
Chris Lattner
72770f5877
Correctly parse variant notation
...
llvm-svn: 16637
2004-10-03 20:19:02 +00:00
Chris Lattner
91c538f2a1
Add initial support for variants. This just parses the new format, no
...
functionality is added
llvm-svn: 16636
2004-10-03 19:34:31 +00:00
Misha Brukman
46cee7da73
#include DataTypes.h to compile on MinGW, patch by Henrik Bach.
...
llvm-svn: 16616
2004-09-30 18:27:39 +00:00
Nate Begeman
996ddbc98e
Add support for the isLoad and isStore flags, needed by the instruction scheduler
...
llvm-svn: 16554
2004-09-28 21:01:45 +00:00
Chris Lattner
9b0dfa3c0d
Turn the hasDelaySlot flag into the M_DELAY_SLOT_FLAG
...
llvm-svn: 16553
2004-09-28 18:38:01 +00:00
Chris Lattner
e8e81a2941
Revamp the Register class, and allow the use of the RegisterGroup class to
...
specify aliases directly in register definitions.
Patch contributed by Jason Eckhardt!
llvm-svn: 16330
2004-09-14 04:17:02 +00:00
Reid Spencer
0ded30aec4
Clean up some "clean:" targets so they use $(VERB) and don't print anything
...
by default, like every other "clean" target in LLVM.
llvm-svn: 16161
2004-09-03 23:19:53 +00:00
Reid Spencer
c8ec13388b
Make tblgen's exception handling a little more robust by printing the
...
program name and also catching ...
llvm-svn: 16160
2004-09-03 23:17:54 +00:00
Reid Spencer
7c16caa336
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer
811c3c0edb
Link with LLVMsystem.a for operating system independence.
...
llvm-svn: 16094
2004-08-29 19:31:19 +00:00
Reid Spencer
9b129bea2e
RemoveFileOnErrorSignal is now in the llvm::sys namespace. Adjust
...
accordingly.
llvm-svn: 16093
2004-08-29 19:30:41 +00:00
Chris Lattner
8eab62ee0d
Alignment is now in bits.
...
llvm-svn: 15976
2004-08-21 20:15:25 +00:00
Chris Lattner
beadefde19
Make alignment be in bits, just like size is
...
llvm-svn: 15969
2004-08-21 20:00:36 +00:00
Chris Lattner
a6d34d9e19
Infer the spillsize/alignment of a register based on the register classes
...
it is embedded into.
llvm-svn: 15966
2004-08-21 19:42:03 +00:00
Chris Lattner
d3244d9cec
Support "Methods" in register classes in CodgeGenRegisterClass
...
llvm-svn: 15965
2004-08-21 19:21:21 +00:00
Chris Lattner
2a86fab933
Start parsing register classes into a more structured form
...
llvm-svn: 15961
2004-08-21 04:05:00 +00:00
Chris Lattner
e34ae99942
Read in declared reg sizes
...
llvm-svn: 15960
2004-08-21 02:24:57 +00:00
Chris Lattner
c9d99efdd3
Do not #include files into the llvm namespace
...
llvm-svn: 15849
2004-08-17 03:08:28 +00:00
Chris Lattner
8af61ddb96
Use CodeGenRegister class to make reading in of register information more
...
systematic.
llvm-svn: 15805
2004-08-16 01:10:21 +00:00
Chris Lattner
b7b70480e1
Add initial support for register and register class representation.
...
Obviously this is not done.
llvm-svn: 15804
2004-08-16 01:09:52 +00:00
Chris Lattner
0bbf7005f5
Remove awareness of isDummyClass
...
llvm-svn: 15789
2004-08-15 23:04:13 +00:00
Chris Lattner
6ffa501d9f
Make the AsmWriter a first-class tblgen object. Allow targets to specify
...
name of the generated asmwriter class, and the name of the format string.
llvm-svn: 15747
2004-08-14 22:50:53 +00:00
Chris Lattner
baa2ecb798
Fix minor bug in previous checkin
...
llvm-svn: 15649
2004-08-11 04:08:36 +00:00
Chris Lattner
c1904dd38f
change how we invoke the printer. Instead of passing in the MO directly,
...
pass in the MI, operand number, and the type of the operand.
llvm-svn: 15645
2004-08-11 02:23:23 +00:00
Chris Lattner
3bc477a237
Start parsing more information from the Operand information
...
llvm-svn: 15644
2004-08-11 02:22:39 +00:00
Chris Lattner
101f3fea82
Remove special case hacks
...
llvm-svn: 15643
2004-08-11 01:53:58 +00:00
Misha Brukman
422d0fadf1
Deleted commented-out code as we now get namespace directly, add comments
...
llvm-svn: 15627
2004-08-10 20:54:58 +00:00
Misha Brukman
59978333a3
Use the target name instead of hard-coding SparcV9.
...
llvm-svn: 15616
2004-08-10 18:31:01 +00:00
Chris Lattner
79db057a3b
This was a good idea, but until this does not break the build of
...
lib/Target/Sparc, we should not use it.
llvm-svn: 15603
2004-08-10 15:05:18 +00:00
Misha Brukman
920ae9524d
Use the current target name instead of a ClassPrefix.
...
llvm-svn: 15585
2004-08-09 19:10:43 +00:00
Misha Brukman
18d27dc342
* Use Classname and ClassPrefix instead of hard-coded V9 values
...
* Simplify code and shorten lines by not recomputing values
llvm-svn: 15582
2004-08-09 17:47:45 +00:00
Misha Brukman
8e5492e350
* Added documentation in the file header
...
* Shorten assert() text to make it fit within 80 cols
llvm-svn: 15508
2004-08-04 22:07:54 +00:00
Chris Lattner
f40e4ebf19
Be picky
...
llvm-svn: 15400
2004-08-01 08:55:34 +00:00
Chris Lattner
29d8ac77e1
Instructions no longer need to have names.
...
llvm-svn: 15399
2004-08-01 08:38:17 +00:00
Chris Lattner
65512a0c49
Add support for asm printing machine instructions that have operands.
...
llvm-svn: 15391
2004-08-01 07:43:02 +00:00
Chris Lattner
5572682faa
Parse the operand list of the instruction. We currently support register and immediate operands.
...
llvm-svn: 15390
2004-08-01 07:42:39 +00:00
Chris Lattner
1c4ae85035
Initial cut at an asm writer emitter. So far, this only handles emission of
...
instructions, and only instructions that take no operands at that!
llvm-svn: 15386
2004-08-01 05:59:33 +00:00
Chris Lattner
c860ecafe1
Add, and start using, the CodeGenInstruction class. This class represents
...
an instance of the Instruction tablegen class.
llvm-svn: 15385
2004-08-01 05:04:00 +00:00
Chris Lattner
fce9603387
Rename CodeGenWrappers.(cpp|h) -> CodeGenTarget.(cpp|h)
...
llvm-svn: 15382
2004-08-01 04:04:35 +00:00
Chris Lattner
6847866400
Finegrainify namespacification
...
llvm-svn: 15381
2004-08-01 03:55:39 +00:00
Chris Lattner
fd4558862c
Support new flag
...
llvm-svn: 15355
2004-07-31 02:07:26 +00:00
Chris Lattner
577fc3f576
Implement test/Regression/TableGen/ListSlices.td
...
llvm-svn: 15249
2004-07-27 01:01:21 +00:00
Chris Lattner
8bf9e06ddd
Add initial support for list slices. This currently allows you to do stuff
...
like this:
def B {
list<int> X = [10, 20, 30, 4, 1, 1231, 20] [2-4,2,2,0-6];
}
... which isn't particularly useful, but more is to come.
llvm-svn: 15247
2004-07-26 23:21:34 +00:00
Chris Lattner
87bf918bc0
Remove some abandoned code that was never finished. If needed in the future
...
it can be ressurected from CVS.
llvm-svn: 15113
2004-07-22 21:32:38 +00:00
Chris Lattner
89ae115aa5
Passing integer 0 in for a pointer value doesn't work on IA64. Fix this
...
by using a new macro.
llvm-svn: 14863
2004-07-16 00:02:21 +00:00
Chris Lattner
8e30a4dfc5
Make tblgen not try to be smart. This is better handled in makefiles if
...
at all. Patch contributed by Vladimir Prus!
llvm-svn: 14784
2004-07-13 06:11:46 +00:00
Misha Brukman
6752fb58b6
Handle shifts >= 32 bits.
...
llvm-svn: 14291
2004-06-21 18:01:47 +00:00
Chris Lattner
bcdadf3765
Move the IntrinsicLowering header into the CodeGen directory, as per PR346
...
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Misha Brukman
b8561ebf21
Make header comment fit within 80 cols.
...
llvm-svn: 14198
2004-06-17 15:49:36 +00:00
Misha Brukman
aff10d0461
Emit a more sensible error message if no subclasses of Target are defined.
...
Patch contributed by Vladimir Prus.
llvm-svn: 14010
2004-06-04 14:59:42 +00:00
Chris Lattner
1f4e545a89
Add support for dos style files.
...
llvm-svn: 13836
2004-05-27 17:44:18 +00:00
Chris Lattner
278f5152d3
Header file moved
...
llvm-svn: 13813
2004-05-27 05:41:36 +00:00
Misha Brukman
b4f20ea496
The "best" of both worlds: readable C++ comments and valid HTML For doxygen.
...
llvm-svn: 12964
2004-04-15 15:30:15 +00:00
Jakub Staszak
68a9025f50
Tablegen backend for really simple instruction selector
...
llvm-svn: 12713
2004-04-06 19:31:31 +00:00
Jakub Staszak
f9bfc7f927
add tablgen backend for really simple instruction selector
...
llvm-svn: 12712
2004-04-06 19:30:56 +00:00
Chris Lattner
36326de312
Do not remove an active template argument even if the superclass had one of the
...
same name
llvm-svn: 11950
2004-02-28 17:41:48 +00:00
Chris Lattner
994f2d1406
Ignore X = X assignments that was causing Alkis's rewrite of X86.td to crash
...
tblgen.
llvm-svn: 11948
2004-02-28 17:31:28 +00:00
Chris Lattner
d959ab9208
Assert instead of going into an infinite loop!
...
llvm-svn: 11946
2004-02-28 16:31:53 +00:00
Chris Lattner
564251ed5e
exit(1) instead of abort()'ing on error
...
llvm-svn: 11380
2004-02-13 16:37:43 +00:00
Chris Lattner
a80e9f0a19
Fix buggy error message problem
...
llvm-svn: 11379
2004-02-13 16:33:56 +00:00
Misha Brukman
e10e2b12dd
Ooops, top-level C++-comments aren't recognized by flex.
...
llvm-svn: 11337
2004-02-12 00:03:08 +00:00
Misha Brukman
a01b30bbaa
* Convert C comments to C++ style (why are some one way, some another?!)
...
* Delete extra space, extra blank comment lines
* Convert function comments to doxygen
llvm-svn: 11336
2004-02-12 00:00:46 +00:00
Chris Lattner
e6540165b3
Print the record NAME not the record ADDRESS
...
llvm-svn: 11144
2004-02-06 03:19:17 +00:00
Brian Gaeke
666aaf715f
Fix a couple of places I noticed where "X86" was hard-coded.
...
llvm-svn: 10974
2004-01-24 09:23:46 +00:00
Chris Lattner
95c13c92ff
Stop laughing Misha
...
llvm-svn: 10393
2003-12-11 00:58:34 +00:00
Brian Gaeke
960707c335
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
John Criswell
9583cfafc5
Added LLVM copyright notice.
...
llvm-svn: 9324
2003-10-21 15:29:18 +00:00
John Criswell
abe5cdcf21
Added LLVM copyright to Makefiles.
...
llvm-svn: 9314
2003-10-20 22:29:16 +00:00
John Criswell
d3032037f1
Added LLVM copyright header.
...
llvm-svn: 9305
2003-10-20 20:20:30 +00:00
John Criswell
38a47ab007
Removed the .PRECIOUS of Lex and Yacc output files.
...
They are already marked precious in llvm/Makefile.rules, and removing
this line seems to fix the Makefile so that the Yacc output is placed
into the object tree and not the source tree.
llvm-svn: 9179
2003-10-16 20:38:16 +00:00
Chris Lattner
44d2c3514a
Regularize header file comments
...
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Brian Gaeke
969378468e
This seems to work around some unobvious bug in gcc on sparc which was
...
causing the build of lib/Target/X86 to fail.
llvm-svn: 9042
2003-10-10 21:55:29 +00:00
Alkis Evlogimenos
5f1f337d95
Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs
...
and TargetInstrDescriptor::ImplicitUses to always point to a null
terminated array and never be null. So there is no need to check for
pointer validity when iterating over those sets. Code that looked
like:
if (const unsigned* AS = TID.ImplicitDefs) {
for (int i = 0; AS[i]; ++i) {
// use AS[i]
}
}
was changed to:
for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) {
// use *AS
}
llvm-svn: 8960
2003-10-08 05:20:08 +00:00
Chris Lattner
f5bd1b7a8e
Move support/tools/* back into utils
...
llvm-svn: 8875
2003-10-05 19:27:59 +00:00