Chris Lattner
9249afaa83
Remove the old .def file, it is now obsolete
...
llvm-svn: 7536
2003-08-03 21:54:06 +00:00
Chris Lattner
b62d30ec22
Rearrange fields yet again: Don't instantiate these lists ONCE PER INSTRUCTION.
...
llvm-svn: 7535
2003-08-03 21:52:28 +00:00
Chris Lattner
5dca2ea4bc
Simplify code, eliminating the need for the X86 isVoid target instr flag
...
llvm-svn: 7534
2003-08-03 21:51:45 +00:00
Chris Lattner
77691b2c54
Set debug types
...
llvm-svn: 7533
2003-08-03 21:47:31 +00:00
Chris Lattner
25e28f61ab
Set debug types
...
llvm-svn: 7532
2003-08-03 21:14:38 +00:00
Chris Lattner
eba995d624
Remove using decl
...
llvm-svn: 7531
2003-08-03 20:24:29 +00:00
Chris Lattner
7ef512fec1
Add Target class for X86 target
...
llvm-svn: 7523
2003-08-03 18:19:37 +00:00
Chris Lattner
6b3f365906
The RegisterInfo class is obsolete
...
llvm-svn: 7522
2003-08-03 18:18:48 +00:00
Chris Lattner
c485e85fa2
Remove the RegisterInfo class in favor of a general Target class. Add instrinfo stuff
...
llvm-svn: 7521
2003-08-03 18:18:31 +00:00
Chris Lattner
964738dd71
Tell CVS to ignore all .inc files
...
llvm-svn: 7513
2003-08-03 15:50:17 +00:00
Chris Lattner
5969ff707d
Switch over to tablegen generated header files
...
llvm-svn: 7512
2003-08-03 15:48:55 +00:00
Chris Lattner
457b33f7e4
Switch over to TableGen generated register file description
...
llvm-svn: 7511
2003-08-03 15:48:14 +00:00
Chris Lattner
0891dd9161
Initial checkin of X86.td file
...
llvm-svn: 7510
2003-08-03 15:47:49 +00:00
Chris Lattner
f4bfcad4ea
Initial checkin of X86 Register File description
...
llvm-svn: 7509
2003-08-03 15:47:25 +00:00
Chris Lattner
8aa04e1e4c
Fix typeos in comments
...
llvm-svn: 7505
2003-08-03 13:50:14 +00:00
Chris Lattner
b33c691d7d
Make it easier to debug by exposing a temporary
...
llvm-svn: 7504
2003-08-03 13:49:25 +00:00
Chris Lattner
a18bb98cf5
Wrap at 80 columns
...
llvm-svn: 7503
2003-08-03 13:49:03 +00:00
Chris Lattner
490d0d3351
Rename fields
...
llvm-svn: 7498
2003-08-01 22:21:49 +00:00
Chris Lattner
1baa706ab7
Move DEBUG to Debug.h
...
llvm-svn: 7497
2003-08-01 22:21:34 +00:00
Chris Lattner
277bb3482c
DEBUG got moved to Debug.h
...
llvm-svn: 7495
2003-08-01 22:19:03 +00:00
Chris Lattner
ef90e1b189
Move debug functionality to Debug.cpp/Debug.h
...
llvm-svn: 7494
2003-08-01 22:15:41 +00:00
Chris Lattner
89bf5d3a60
Describe the value name
...
llvm-svn: 7493
2003-08-01 22:15:15 +00:00
Chris Lattner
686e94e760
DEBUG got moved to Support/Debug.h
...
llvm-svn: 7492
2003-08-01 22:15:03 +00:00
Chris Lattner
64fade1536
DEBUG got moved to Debug.h
...
llvm-svn: 7491
2003-08-01 22:13:59 +00:00
Chris Lattner
aa22e98e56
Check in the implementation of the FileUtilities!
...
llvm-svn: 7487
2003-08-01 21:16:14 +00:00
Chris Lattner
1e006b1e92
Remove makefile complexity by always running tablegen with its final output
...
directory.
llvm-svn: 7485
2003-08-01 20:34:56 +00:00
Chris Lattner
cba4e65559
Use the C++, more portable, deleter
...
llvm-svn: 7483
2003-08-01 20:29:18 +00:00
Chris Lattner
346760c6cb
Move #include from a header to here
...
llvm-svn: 7480
2003-08-01 19:16:29 +00:00
Vikram S. Adve
eda4d9cb09
Add all arithmetic operators to ConstantExprToString().
...
Note that some generated operators (like &, | or ^) may
not be supported by the assembler -- but if they've got
this far, it's better to generate them and let the assembler decide.
llvm-svn: 7476
2003-08-01 15:55:53 +00:00
Vikram S. Adve
b68bd55363
*Both* operands of divide need sign-extension before divide (if smaller
...
than machine register size), not just the second operand.
llvm-svn: 7475
2003-08-01 15:54:38 +00:00
Vikram S. Adve
4576ae1530
Put back the separate pass to decompose multi-dimensional references
...
since it is *necessary* for correct code generation. Only optional
transformations belong in the PreOpts pass (which needs to be renamed
from PreSelection to PreOpts).
llvm-svn: 7474
2003-08-01 15:53:24 +00:00
Chris Lattner
d96b821c8a
encode size information into each ValueType
...
Add new RegisterInfo class
llvm-svn: 7469
2003-08-01 05:18:03 +00:00
Chris Lattner
8dce81478f
This method is long dead
...
llvm-svn: 7460
2003-08-01 03:48:42 +00:00
Chris Lattner
5d1a43bb60
Fix the JIT in the Nightly tester. This was not a fun bug to track down.
...
See the comments in the patch for details.
llvm-svn: 7457
2003-07-31 19:38:34 +00:00
Chris Lattner
12defed07e
Trivial cleanups: no need to include header twice. Global variable is local to file
...
llvm-svn: 7456
2003-07-31 19:31:21 +00:00
Chris Lattner
79a56ff370
Remove more obsolete comments
...
llvm-svn: 7455
2003-07-31 17:56:05 +00:00
Misha Brukman
f451b1f332
Changed pointer to the JIT code to its current location, under LLI.
...
llvm-svn: 7454
2003-07-31 17:50:35 +00:00
Chris Lattner
93dacfb0bd
Unbreak the CBE output
...
llvm-svn: 7453
2003-07-31 17:47:24 +00:00
Brian Gaeke
4449b3c963
I think local symbols in X86 GAS have to start with .L, not just
...
.; so I have changed the basic block markers to start with .L. I also
broke up a >80char line.
llvm-svn: 7452
2003-07-31 17:38:52 +00:00
John Criswell
9610326d63
Modified the code so that it generates (0) for setjmp() and abort() for
...
longjmp() (and does not include setjmp.h).
This is to fix some problems on Sparc while non-local jumps are still
unimplemented.
llvm-svn: 7449
2003-07-31 15:11:08 +00:00
Tanya Lattner
26f6e3b353
*** empty log message ***
...
llvm-svn: 7447
2003-07-31 05:06:09 +00:00
Tanya Lattner
8c2ac118ce
Added function to determine if an Instruction may trap.
...
llvm-svn: 7442
2003-07-31 04:05:50 +00:00
Chris Lattner
d1b7716c86
Add comments
...
Make the register classes optionally take code fragments for allocation_order_*
llvm-svn: 7441
2003-07-30 22:16:41 +00:00
Chris Lattner
51504820c7
We no longer need to preprocess SparcV9.td before sending it through tablegen
...
llvm-svn: 7437
2003-07-30 21:00:37 +00:00
Chris Lattner
6457a808f0
Fix a bug that brian reported
...
llvm-svn: 7428
2003-07-30 19:04:37 +00:00
Chris Lattner
78f944d347
Add support for "named positional arguments"
...
llvm-svn: 7421
2003-07-30 17:34:02 +00:00
Vikram S. Adve
d4520885a0
When emitting a constant, check for ConstantExpr before
...
ordinary (primitive) types since ConstantExprs may be of primitive type!
llvm-svn: 7418
2003-07-30 12:54:47 +00:00
Chris Lattner
9e520e120b
Conform to the new interface for describing target registers... even though
...
it's currently not used.
llvm-svn: 7416
2003-07-30 05:51:34 +00:00
Chris Lattner
d1b04c63c2
Add all of the necessary classes to describe the contents of the MRegister.h implementation
...
for a target.
llvm-svn: 7415
2003-07-30 05:50:12 +00:00
Chris Lattner
24ac5f5339
Only regenerate the .inc file if IT has changed, not just if the .td files
...
have changed.
llvm-svn: 7414
2003-07-30 05:49:17 +00:00
Chris Lattner
cf28d0f799
Use target specific interface instead of forcing it to be target-generic
...
llvm-svn: 7413
2003-07-30 05:33:48 +00:00
Chris Lattner
1933b89bfe
No this file is not actually Sparc.td :)
...
llvm-svn: 7405
2003-07-29 23:07:13 +00:00
Chris Lattner
89619f07a3
Do not use 'cpp' directly
...
llvm-svn: 7404
2003-07-29 23:04:41 +00:00
Chris Lattner
f59d363766
Add namespace specifier, add flags used by the X86 BE
...
llvm-svn: 7403
2003-07-29 23:02:49 +00:00
Misha Brukman
d0aaeba334
* Cleaned up and corrected comments wrt instruction formats
...
* Enabled STXFSR instructions
llvm-svn: 7400
2003-07-29 21:21:20 +00:00
Misha Brukman
6f2a6a5279
Make emitFarCall() public, and add a few comments to functions.
...
llvm-svn: 7399
2003-07-29 20:52:56 +00:00
Vikram S. Adve
ae84838162
Unify all constant evaluations that depend on register size
...
in ConvertConstantToIntType.
llvm-svn: 7395
2003-07-29 19:59:23 +00:00
Vikram S. Adve
c8b8a4088d
Rename 'dump-asm' to 'dump-input' and really print it just before code-gen.
...
llvm-svn: 7394
2003-07-29 19:58:00 +00:00
Vikram S. Adve
0a6bd349c2
Bug fix: don't unnecessarily pretty-print control-characters, some of
...
which were wrong (particularly, '\a' for '\007').
llvm-svn: 7393
2003-07-29 19:57:34 +00:00
Vikram S. Adve
98618cd85c
Add ConvertConstantToIntType() to unify all constant handling
...
that depends on machine register size.
Moved insertCallerSavingCode() to PhyRegAlloc and
moved isRegVolatile and modifiedByCall to TargetRegInfo: they are all
machine independent. Remove several dead functions.
llvm-svn: 7392
2003-07-29 19:54:41 +00:00
Vikram S. Adve
97e5e148b8
Add code to support stack spill/temp offsets that don't fit in the
...
immed. field. Moved insertCallerSavingCode() to PhyRegAlloc: it is
now machine independent. Remove all uses of PhyRegAlloc.
llvm-svn: 7391
2003-07-29 19:53:21 +00:00
Vikram S. Adve
1414fba288
All constant-evaluation code now unified into
...
TargetInstrInfo::ConvertConstantToIntType().
llvm-svn: 7390
2003-07-29 19:50:12 +00:00
Vikram S. Adve
b58f52ab45
1. Bug fix: Don't use branch operand reg. as temp. reg. when
...
spilling values used by an instruction in the delay slot of the branch
(which will eventually be moved before the branch).
2. Bug fix: Delete the delay slot instr, not the branch instr, when
moving delay slot instr. out!!!!
3. Move code to insert caller-saves moved here from SparcRegInfo:
it is now machine-independent.
llvm-svn: 7389
2003-07-29 19:49:21 +00:00
Vikram S. Adve
59e7da7437
Don't require a BB to look-up live variables, unless they may need to
...
be recomputed.
llvm-svn: 7388
2003-07-29 19:42:32 +00:00
Vikram S. Adve
42005e62b0
Add const version of getLiveRangeForValue().
...
llvm-svn: 7386
2003-07-29 19:38:22 +00:00
Vikram S. Adve
52859278d1
Code to insert caller-saves moved here from SparcRegInfo: it is now
...
machine-independent.
Fix problem with using branch operand reg. as temp. reg. when
spilling values used by an instruction in the delay slot of the branch
(which will eventually be moved before the branch).
llvm-svn: 7385
2003-07-29 19:37:41 +00:00
Misha Brukman
9bcbe0c3bc
* Correctly emit a far call if the target address does not fit into 30 bits
...
instead of assert()ing
* Fixed a nasty bug where '07' was used instead of register 'o7'
llvm-svn: 7382
2003-07-29 19:00:58 +00:00
Misha Brukman
442175ec3b
* Stop hard-coding a value for beginning of emitted code on Sparc since we can
...
now handle far calls (i.e., beyond the 30-bit limit in call instructions).
* As a side-effect, this allows us to unify and clean up the mmap() call and
code around it.
llvm-svn: 7381
2003-07-29 16:57:16 +00:00
Chris Lattner
8fdf81b97e
Move "register flags" definition the type of registers to be fully fledged
...
value types
llvm-svn: 7377
2003-07-29 05:14:16 +00:00
Chris Lattner
b6db3e9a88
Add support for Alpha intrinsics, contributed by Rahul Joshi
...
llvm-svn: 7373
2003-07-28 21:20:57 +00:00
Misha Brukman
c77e286633
Add rationale for the MAP_ANONYMOUS vs. MAP_ANON flags.
...
llvm-svn: 7368
2003-07-28 19:26:19 +00:00
Misha Brukman
bbfad09fa9
The RTLD_GLOBAL flag allows symbols to be globally accessible, which makes
...
resolution of symbols in the .so possible (currently assists debugging with
bugpoint).
llvm-svn: 7366
2003-07-28 19:19:58 +00:00
Misha Brukman
c0193ca460
Add ability for external C code to get pointers to functions given their name.
...
This us used by bugpoint -- when code is compiled to a shared object to be
JITted, it must use the JIT's lazy resolution method to find function addresses,
because some functions will not be available at .so load time, as they are in
the bytecode file.
llvm-svn: 7363
2003-07-28 19:09:06 +00:00
Misha Brukman
752c6f4548
Clean up code dealing with RTLD_SELF differences on Sparc and X86.
...
llvm-svn: 7362
2003-07-28 19:07:30 +00:00
Misha Brukman
cd6e03cb52
Fix reference to architecture.
...
llvm-svn: 7361
2003-07-28 19:06:50 +00:00
Misha Brukman
f4702ed4d1
Add in support to load shared objects (-load is provided by Support library).
...
llvm-svn: 7360
2003-07-28 19:06:19 +00:00
Chris Lattner
da51c38e57
Specify the value type for the register, not just the size.
...
llvm-svn: 7357
2003-07-28 04:25:36 +00:00
Chris Lattner
163559e702
Instead of specifying the SIZE of the register, go so far as to specify
...
what value type it is.
llvm-svn: 7356
2003-07-28 04:24:59 +00:00
Chris Lattner
40cc4c1392
Rename function to be more consistent with filename
...
llvm-svn: 7352
2003-07-26 23:49:58 +00:00
Chris Lattner
92dfc1ed32
Making this code const-correct would be a pain, so I'll hack it.
...
llvm-svn: 7350
2003-07-26 23:29:51 +00:00
Chris Lattner
2d6049baaf
Const correctness fixes
...
llvm-svn: 7349
2003-07-26 23:24:56 +00:00
Chris Lattner
e39696972d
Be const correct
...
llvm-svn: 7348
2003-07-26 23:23:41 +00:00
Chris Lattner
792286a084
Hrm, another necesary one :(
...
llvm-svn: 7347
2003-07-26 23:22:19 +00:00
Chris Lattner
f0df04752d
We don't modify the LLVM rep, remain const correct
...
llvm-svn: 7345
2003-07-26 23:06:00 +00:00
Chris Lattner
b92653f037
If the pass changes _anything_ it must return true
...
llvm-svn: 7344
2003-07-26 23:05:37 +00:00
Chris Lattner
406d31b4c2
This code doesn't modify the LLVM structure, keep stuff const
...
llvm-svn: 7343
2003-07-26 23:04:00 +00:00
Chris Lattner
ecc0501a97
Remove #include
...
llvm-svn: 7342
2003-07-26 23:01:04 +00:00
Chris Lattner
9224631d6b
Remove extraneous #includes
...
llvm-svn: 7341
2003-07-26 23:00:29 +00:00
Chris Lattner
36a7bf78fa
Fix another minor bug
...
llvm-svn: 7340
2003-07-26 23:00:05 +00:00
Vikram S. Adve
48144de834
(1) Major fix to the way unused regs. are marked and found for the FP
...
Single and FP double reg types (which share the same reg class).
Now all methods marking/finding unused regs consider the regType
within the reg class, and SparcFloatRegClass specializes this code.
(2) Remove machine-specific regalloc. methods that are no longer needed.
In particular, arguments and return value from a call do not need
machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
overloading when an include file is omitted.
llvm-svn: 7334
2003-07-25 21:12:15 +00:00
Vikram S. Adve
a98599dc3b
1. Fix a case that was marking the invalid reg. num. (-1) as used,
...
causing a nasty array bound error later.
2. Fix silly typo causing logical shift of unsigned long to use
SRL instead of SRLX.
llvm-svn: 7330
2003-07-25 21:08:58 +00:00
Vikram S. Adve
57eb4ab6bc
(1) Change the way unused regs. are marked and found to consider regType
...
info (since multiple reg types may share the same reg class).
(2) Remove machine-specific regalloc. methods that are no longer needed.
In particular, arguments and return value from a call do not need
machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
overloading when an include file is omitted.
llvm-svn: 7329
2003-07-25 21:06:09 +00:00
Vikram S. Adve
714fee31fd
Remove unused field. Change the way unused regs. are marked and
...
found to consider regType info (since multiple reg types may share
the same reg class, e.g., single and double on Sparc).
llvm-svn: 7327
2003-07-25 21:00:13 +00:00
Chris Lattner
752a4ca4c4
Dont' try to parse the colon
...
llvm-svn: 7323
2003-07-25 20:49:29 +00:00
Chris Lattner
915b998b3f
Add a more general check-flags which can be used to ensure arbitrary flags are set
...
llvm-svn: 7322
2003-07-25 20:45:40 +00:00
Brian Gaeke
991f66b7e2
Include llvm/Support/Mangler.h first. Don't include <iostream>, <set>,
...
<string>, or llvm/Value.h. Move up the inclusion of llvm/Support/Mangler.h.
llvm-svn: 7321
2003-07-25 20:21:20 +00:00
Brian Gaeke
11e6d7f2de
Don't include llvm/SlotCalculator.h, or <set>.
...
Move up the inclusion of llvm/Support/Mangler.h.
llvm-svn: 7320
2003-07-25 20:21:06 +00:00
Brian Gaeke
d9979a5529
Cleanups:
...
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
Make Count an unsigned int, and use utostr().
Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line. Include <set>.
llvm-svn: 7301
2003-07-24 21:37:57 +00:00
Brian Gaeke
e5ae59ad05
Factor out name-mangling from X86/Printer, which is derived from CWriter,
...
into this new support class.
llvm-svn: 7300
2003-07-24 20:20:58 +00:00
Brian Gaeke
dc07ea6681
Use unified CWriter-X86/Printer name mangler. Do not bother using
...
SlotCalculator in CWriter. (Unfortunately, all this means a lot of
X86/Printer's methods have to be de-constified again. Oh well.)
llvm-svn: 7299
2003-07-24 20:20:44 +00:00