Chris Lattner
68e486804f
Rename IdentifierInfo::isName to ::isStr. Use a nifty trick
...
from Sebastian to enforce that a literal string is passed in,
and use this to avoid having to call strlen on it.
llvm-svn: 59706
2008-11-20 04:42:34 +00:00
Nick Lewycky
e42592e33a
undef beats zero. Fix this missed optimization opportunity. Patch by Matt Elder!
...
llvm-svn: 59705
2008-11-20 04:36:13 +00:00
Scott Michel
4b12480063
Revert accidental last patch
...
llvm-svn: 59704
2008-11-20 04:28:08 +00:00
Scott Michel
e361f08ab0
CellSPU: Adjust spacing/tabulation
...
llvm-svn: 59703
2008-11-20 04:26:21 +00:00
Dan Gohman
8e066a1349
Remove a remnant of list-burr's fast mode.
...
llvm-svn: 59702
2008-11-20 03:32:45 +00:00
Dan Gohman
186f65d275
Factor out the SethiUllman numbering logic from the list-burr and
...
list-tdrr schedulers into a common base class.
llvm-svn: 59701
2008-11-20 03:30:37 +00:00
Dan Gohman
fd08af4ee7
Remove the "fast" form of the list-burr scheduler, and use the
...
dedicated "fast" scheduler in -fast mode instead, which is
faster. This speeds up llc -fast by a few percent on some
testcases -- the speedup only happens for code not handled by
fast-isel.
llvm-svn: 59700
2008-11-20 03:11:19 +00:00
Oscar Fuentes
4d69fd4f1c
CMake: when building shared libraries, use -fPIC for compiling
...
partially linked objects.
llvm-svn: 59699
2008-11-20 03:10:17 +00:00
Dan Gohman
3f656dfa03
Facter AddPseudoTwoAddrDeps and associated infrasructure out of
...
the list-burr scheduler so that it can be used by the list-tdrr
scheduler too.
llvm-svn: 59698
2008-11-20 02:45:51 +00:00
Evan Cheng
c22215a090
- 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
Evan Cheng
5f23e9fe73
Fix a thinko. MO is getOperand(i-1) so we don't have to adjust e.
...
llvm-svn: 59696
2008-11-20 02:25:51 +00:00
Ted Kremenek
2af3cee287
Make FIXME a hard assertion.
...
llvm-svn: 59695
2008-11-20 01:52:55 +00:00
Ted Kremenek
b33ce32bda
Preprocessor::getCurrentFileLexer() now returns a PreprocessorLexer* instead of
...
a Lexer*. This means it will either return the current (normal) file Lexer or a
PTHLexer.
llvm-svn: 59694
2008-11-20 01:49:44 +00:00
Ted Kremenek
300590b584
Just use the SourceLocation of SysHeaderTok when doing a callback to emit #line
...
information. A diff of the -E output for Cocoa.h shows that there is no change
in output.
llvm-svn: 59693
2008-11-20 01:45:11 +00:00
Dan Gohman
866b034839
Add #include <climits> to get the definition of INT_MAX.
...
llvm-svn: 59692
2008-11-20 01:41:34 +00:00
Ted Kremenek
6552d259d4
Assign the result of getCurrentFileLexer() to a PreprocessorLexer* instead of Lexer* (narrower interface).
...
llvm-svn: 59691
2008-11-20 01:35:24 +00:00
Ted Kremenek
b0262c1e64
- Default initialize ParsingPreprocessorDirective, ParsingFilename, and
...
LexingRawMode in the ctor of PreprocessorLexer.
- PTHLexer: Use "LastToken" instead of "NumToken"
llvm-svn: 59690
2008-11-20 01:29:45 +00:00
Dan Gohman
4ce15e12b9
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
Devang Patel
c8b2fe1eed
Do not forget llvm.dbg.declare's first argument while removing debugging information.
...
llvm-svn: 59688
2008-11-20 01:20:42 +00:00
Ted Kremenek
61915f5d4a
Add (untested) implementation of PTHLexer::isNextPPTokenLParen() and PTHLexer::DiscardToEndOfLine().
...
llvm-svn: 59687
2008-11-20 01:16:50 +00:00
Ted Kremenek
678f8d7992
Use ScheduleDAGSDNodes.h instead of ScheduleDAG.h (stuff moved around).
...
llvm-svn: 59684
2008-11-20 00:52:19 +00:00
Zhongxing Xu
06b377668d
Split region store specific test cases.
...
llvm-svn: 59683
2008-11-20 00:46:15 +00:00
Fariborz Jahanian
003e83004b
More objc gc stuff. Read/Write barriers for local static/extern,
...
diagnostics on use of __weak attribute on fields,
Early support for read/write barriers for objc fields.
llvm-svn: 59682
2008-11-20 00:15:42 +00:00
Bill Wendling
8d5b57b354
Copy the tblgen utility.
...
llvm-svn: 59681
2008-11-20 00:11:57 +00:00
Dan Gohman
4c3034f711
Simplify this code a little. In the fast scheduler, CreateNewSUnit
...
and CreateClone don't add any extra value.
llvm-svn: 59679
2008-11-19 23:39:02 +00:00
Evan Cheng
59213d64e5
Eliminate a compile time warning.
...
llvm-svn: 59678
2008-11-19 23:21:33 +00:00
Evan Cheng
dfb97383d5
Eliminate a compile time warning.
...
llvm-svn: 59677
2008-11-19 23:21:11 +00:00
Dan Gohman
60cb69e665
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
Douglas Gregor
20b300231a
Beef up the test for function call operators slightly
...
llvm-svn: 59675
2008-11-19 22:59:19 +00:00
Douglas Gregor
ab7897ac44
Implement the rest of C++ [over.call.object], which permits the object
...
being called to be converted to a reference-to-function,
pointer-to-function, or reference-to-pointer-to-function. This is done
through "surrogate" candidate functions that model the conversions
from the object to the function (reference/pointer) and the
conversions in the arguments.
llvm-svn: 59674
2008-11-19 22:57:39 +00:00
Ted Kremenek
5b75170014
Fix comment.
...
llvm-svn: 59673
2008-11-19 22:55:55 +00:00
Ted Kremenek
2861cf42fe
Use PreprocessorLexer::getFileID() instead of Lexer::getFileLoc(). This is an intermediate step to having getCurrentLexer() return a PreprocessorLexer* instead of a Lexer*.
...
llvm-svn: 59672
2008-11-19 22:55:25 +00:00
Ted Kremenek
a2c3c8d71c
Move more cases of using 'CurLexer' to 'CurPPLexer'.
...
Use PTHLexer::isNextPPTokenLParen() when using the PTHLexer.
llvm-svn: 59671
2008-11-19 22:43:49 +00:00
Ted Kremenek
11cfbb473e
Add stub for PTHLexer::isNextPPTokenLParen().
...
llvm-svn: 59670
2008-11-19 22:42:26 +00:00
Ted Kremenek
c9a67fa201
Add version of 'getFileCharacteristic()' for FileIDs.
...
llvm-svn: 59669
2008-11-19 22:41:46 +00:00
Ted Kremenek
76c3441a4e
When using a PTHLexer, use DiscardToEndOfLine() instead of ReadToEndOfLine().
...
llvm-svn: 59668
2008-11-19 22:21:33 +00:00
Dan Gohman
f4d95fdce9
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
Ted Kremenek
45245217bc
- Move static function IsNonPragmaNonMacroLexer into Preprocessor.h.
...
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry
(simplifies some uses).
- Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile.
- Add 'FileID' to PreprocessorLexer, and have Preprocessor query this fileid
when looking up the FileEntry for a file
Performance testing of -Eonly on Cocoa.h shows no performance regression because
of this patch.
llvm-svn: 59666
2008-11-19 21:57:25 +00:00
Dan Gohman
78fb6214f3
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
Steve Naroff
dbfc693f47
Fix <rdar://problem/6291588> assertion failure: SourceManager.h line 489.
...
llvm-svn: 59664
2008-11-19 21:15:47 +00:00
Douglas Gregor
91cea0ad1e
Support for calling overloaded function call operators (operator())
...
with function call syntax, e.g.,
Functor f;
f(x, y);
This is the easy part of handling calls to objects of class type
(C++ [over.call.object]). The hard part (coping with conversions from
f to function pointer or reference types) will come later. Nobody uses
that stuff anyway, right? :)
llvm-svn: 59663
2008-11-19 21:05:33 +00:00
Oscar Fuentes
4fb443f81b
CMake: Removed source file.
...
llvm-svn: 59662
2008-11-19 19:32:19 +00:00
Douglas Gregor
7911b3711d
Some tweaks suggested by Argiris
...
llvm-svn: 59661
2008-11-19 19:09:45 +00:00
Daniel Dunbar
bc47ed8e74
Ignore Output directories when searching for tests.
...
llvm-svn: 59660
2008-11-19 19:06:57 +00:00
Devang Patel
79303b2572
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
Devang Patel
827bced2b1
Let instcombiner remove redundant dbg intrinsics.
...
llvm-svn: 59658
2008-11-19 18:59:41 +00:00
Devang Patel
7ed6c5317c
If there are two consecutive llvm.dbg.stoppoint calls then
...
it is likely that the optimizer deleted code in between these
two intrinsics. Keep only the last llvm.dbg.stoppoint in this case.
llvm-svn: 59657
2008-11-19 18:56:50 +00:00
Oscar Fuentes
77543d9af0
CMake: Added some source files.
...
Patch contributed by Jay Foad!
llvm-svn: 59656
2008-11-19 18:46:39 +00:00
Oscar Fuentes
7455d45ba2
CMake: Removed source file from lib/Target/PIC16/CMakeLists.txt.
...
llvm-svn: 59655
2008-11-19 18:42:25 +00:00
Fariborz Jahanian
a598b5286e
More of objective-c's gc code-gen. Treat objective-c
...
objects as __strong when attribute unspecified.
llvm-svn: 59654
2008-11-19 18:38:10 +00:00