Dan Gohman
be413b4a40
Add a flag to SDep for tracking which edges are anti-dependence edges.
...
llvm-svn: 59785
2008-11-21 02:27:52 +00:00
Bill Wendling
939fe53962
Update comment to reflect a semblance of reality.
...
llvm-svn: 59784
2008-11-21 02:24:44 +00:00
Dan Gohman
62180eb6f2
Rename SDep's isSpecial to isArtificial, to make this field a little
...
less mysterious.
llvm-svn: 59782
2008-11-21 02:18:56 +00:00
Bill Wendling
0f9b6c3524
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC"
...
because the boolean it returns to indicate an overflow may not be treated like
as a flag. It could be stored to memory, for instance.
llvm-svn: 59780
2008-11-21 02:12:42 +00:00
Bill Wendling
02db3b99bf
Implement the sadd_with_overflow intrinsic. This is converted into
...
"ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the
addition and then checks if the result is less than one of the operands. (If it
is, then there was an overflow.)
llvm-svn: 59779
2008-11-21 02:03:52 +00:00
Bill Wendling
239302c6c9
Update comment.
...
llvm-svn: 59766
2008-11-21 00:45:00 +00:00
Dan Gohman
60693dacec
Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor
...
some of the latency computation logic out of the SDNode
ScheduleDAG code into a TargetInstrItineraries helper method
to help with this.
llvm-svn: 59761
2008-11-21 00:12:10 +00:00
Bill Wendling
6d749434a5
Add UADDO and SADDO nodes. These will be used for determining an overflow
...
condition in an addition operation.
llvm-svn: 59760
2008-11-21 00:11:16 +00:00
Bill Wendling
d0bd6f6e73
Introduce two new "add" intrinsics. These return the sum plus a bit indicating
...
that an overflow/carry occured. These are converted into ISD::[SU]ADDO nodes,
which are lowered in a target-independent way into something sane. Eventually,
each target can implement their own method of checking the overflow/carry flags.
llvm-svn: 59756
2008-11-21 00:05:31 +00:00
Dan Gohman
b8f4f58938
Delete redundant inline keywords.
...
llvm-svn: 59754
2008-11-20 22:10:21 +00:00
Dan Gohman
0ba3f17e9f
Doxygenate comments.
...
llvm-svn: 59753
2008-11-20 22:09:52 +00:00
Bill Wendling
cfc163d249
Reformatting. No functionality change.
...
llvm-svn: 59717
2008-11-20 07:23:34 +00:00
Chris Lattner
527a103e8e
add an operator= to assign to smallstring.
...
llvm-svn: 59715
2008-11-20 07:09:17 +00:00
Evan Cheng
2805dcc9a0
- Register scavenger should use MachineRegisterInfo and internal map to find the first use of a register after a given machine instruction.
...
- When scavenging a register, in addition to the spill, insert a restore before the first use.
- Abort if client is looking to scavenge a register even when a previously scavenged register is still live.
llvm-svn: 59697
2008-11-20 02:32:35 +00:00
Dan Gohman
77e3f07d4b
Factor out the code for verifying the work of the scheduler,
...
extend it a bit, and make use of it in all schedulers, to
ensure consistent checking.
llvm-svn: 59689
2008-11-20 01:26:25 +00:00
Dan Gohman
f4b2751ee6
Experimental post-pass scheduling support. Post-pass scheduling
...
is currently off by default, and can be enabled with
-disable-post-RA-scheduler=false.
This doesn't have a significant impact on most code yet because it doesn't
yet do anything to address anti-dependencies and it doesn't attempt to
disambiguate memory references. Also, several popular targets
don't have pipeline descriptions yet.
The majority of the changes here are splitting the SelectionDAG-specific
code out of ScheduleDAG, so that ScheduleDAG can be moved to
libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
the rest of the scheduling code is somewhat rough and will evolve.
llvm-svn: 59676
2008-11-19 23:18:57 +00:00
Dan Gohman
32a8ee5c90
Move the code for printing a graph node label for an SUnit into
...
a virtual method of SelectionDAG.
llvm-svn: 59667
2008-11-19 22:09:45 +00:00
Dan Gohman
b5ce3ebed1
Convert SUnit's dump method into a print method and implement
...
dump in terms of it.
llvm-svn: 59665
2008-11-19 21:32:03 +00:00
Devang Patel
e5a07d989e
Do not use separate utility to walk all instructions and remove dead dbg intrinsics. Let instcombiner do this job.
...
llvm-svn: 59659
2008-11-19 19:01:37 +00:00
Sanjiv Gupta
32225bad7d
Int type for PIC16 is i16. Added i16 intrinsics for memmove, memcpy and memset.
...
llvm-svn: 59612
2008-11-19 08:50:17 +00:00
Chris Lattner
e111ce1265
add a write method.
...
llvm-svn: 59595
2008-11-19 06:45:06 +00:00
Daniel Dunbar
9c71cd5448
LLVMC2: -emit-llvm stops compilation.
...
llvm-svn: 59586
2008-11-19 04:15:56 +00:00
Daniel Dunbar
60f1563256
LLVMC2: Teach llvm_gcc_c tool about -include and -fsyntax-only.
...
- Only focusing on llvm_gcc_c for now, eventually this needs to be
refactored so it can be shared via all the gcc-like tools.
llvm-svn: 59582
2008-11-19 02:59:00 +00:00
Evan Cheng
fcba3cab0b
Fix indentation.
...
llvm-svn: 59558
2008-11-18 22:27:13 +00:00
Devang Patel
233728e8c3
Add new helper pass that strips all symbol names except debugging information.
...
This pass makes it easier to test wheter debugging info. influences optimization passes or not.
llvm-svn: 59552
2008-11-18 21:34:39 +00:00
Oscar Fuentes
d46a90dbdb
CMake: Remove HAVE_LT_DLOPEN from config.h.cmake because it was
...
removed from config.h.in.
llvm-svn: 59546
2008-11-18 21:12:01 +00:00
Dan Gohman
04e99d0f3f
Add more const qualifiers. This fixes build breakage from r59540.
...
llvm-svn: 59542
2008-11-18 19:49:32 +00:00
Dan Gohman
5926405b4a
Make some methods const.
...
llvm-svn: 59540
2008-11-18 19:04:29 +00:00
Dan Gohman
909692c3cd
Whitespace cleanups.
...
llvm-svn: 59532
2008-11-18 17:05:42 +00:00
Bill Wendling
3460a79979
Rename stackprotector_create intrinsic to stackprotector.
...
llvm-svn: 59519
2008-11-18 11:01:33 +00:00
Nicolas Geoffray
3cd13e7e65
Implement support for JIT exceptions on X86_64. Relative offsets are
...
encoded on 32 bytes, and the personality function is not encoded as
relative.
llvm-svn: 59516
2008-11-18 10:44:46 +00:00
Bill Wendling
485d094231
Remove the stackprotector_check intrinsic. Use a volatile load instead.
...
llvm-svn: 59504
2008-11-18 07:30:57 +00:00
Dan Gohman
bc8cfae5c3
Change SUnit's dump method to take a ScheduleDAG* instead of
...
a SelectionDAG*.
llvm-svn: 59488
2008-11-18 02:06:40 +00:00
Dan Gohman
5283c5dc53
There is no InstrStage class.
...
llvm-svn: 59480
2008-11-18 01:05:04 +00:00
Mikhail Glushenkov
0c4ad9c7cc
Support dependencies between plugins by priority-sorting.
...
llvm-svn: 59449
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov
773924299a
Add a layer of indirection to make plugins more flexible.
...
Use strings instead of TableGen defs in the compilation graph
definition. Makes it easier for the plugins to modify an existing graph.
llvm-svn: 59447
2008-11-17 17:29:18 +00:00
Zhongxing Xu
12b52895f2
move partial template specialization to FoldingSet.h.
...
llvm-svn: 59434
2008-11-17 02:40:00 +00:00
Zhongxing Xu
fb7e7e8158
Fix 80-col violation.
...
llvm-svn: 59394
2008-11-16 04:44:41 +00:00
Chris Lattner
047dc0a77a
add a new m_Specific pattern that matches only if we have a specific Value*.
...
llvm-svn: 59393
2008-11-16 04:38:30 +00:00
Chris Lattner
f612178d64
add a new template for matching a select between two constants.
...
llvm-svn: 59391
2008-11-16 04:33:10 +00:00
Zhongxing Xu
cfe0df8609
Add partial specialization of FoldingSetTrait for ImmutableList.
...
llvm-svn: 59387
2008-11-16 04:23:49 +00:00
Zhongxing Xu
b62b5ce749
Fix 80-column violation.
...
llvm-svn: 59385
2008-11-16 04:14:33 +00:00
Nick Lewycky
3889c7ebf0
Clean up some strange whitespace.
...
llvm-svn: 59373
2008-11-15 20:32:33 +00:00
Zhongxing Xu
bce4760ed8
Add Profile method to ImmutableList.
...
llvm-svn: 59362
2008-11-15 09:26:02 +00:00
Oscar Fuentes
9abd2759a2
CMake: Adds header and TableGen files to Visual Studio solution. A new
...
dummy library, `llvm_headers_do_not_build', is created for containing
all header and TableGen files under include/llvm.
llvm-svn: 59346
2008-11-15 02:08:08 +00:00
Oscar Fuentes
a7630d40c0
CMake: Moved generation of Intrinsics.gen to
...
include/llvm/CMakeLists.txt. Does it with the `tablegen' cmake macro.
llvm-svn: 59342
2008-11-15 00:24:38 +00:00
Dan Gohman
521cee6a9c
Add support for building a ScheduleDAG from MachineInstrs. This is currently
...
fairly conservative; it doesn't do alias-analysis queries and it doesn't
attempt to break anti-dependencies.
llvm-svn: 59324
2008-11-14 21:47:58 +00:00
Richard Osborne
8f86bb4d20
Add XCore intrinsics for getid (returns thread id) and bitrev (reverses
...
bits in a word).
llvm-svn: 59296
2008-11-14 10:12:16 +00:00
Dan Gohman
3abe79e3e9
Add a version of NewSUnit for creating units with MachineInstrs.
...
llvm-svn: 59282
2008-11-14 00:41:36 +00:00
Dan Gohman
f92f2d0c97
Initial support for carrying MachineInstrs in SUnits.
...
llvm-svn: 59278
2008-11-14 00:06:09 +00:00