Commit Graph

50407 Commits

Author SHA1 Message Date
Chris Lattner fd384b1b3a Change -verify mode to find the "expected-error" and "expected-warning" strings
with a raw lexer instead of a PP lexer.  This means that -verify doesn't scan
#include'd headers for expected-error/warning strings, and it also means that it
doesn't ignore them in #if 0.

llvm-svn: 59774
2008-11-21 01:18:36 +00:00
Ted Kremenek 473d76e81d Add comment to IsFileLexer, clean up indentation, and tighten how it's written.
llvm-svn: 59773
2008-11-21 01:07:52 +00:00
Chris Lattner 66c8bebe81 remove expected-error from #if 0 section of code.
llvm-svn: 59772
2008-11-21 01:05:35 +00:00
Chris Lattner 4d7c58f0eb disable expected-errors in #if parts of the test.
llvm-svn: 59771
2008-11-21 01:05:04 +00:00
Chris Lattner 1759ea400e split into two tests.
llvm-svn: 59770
2008-11-21 01:04:13 +00:00
Ted Kremenek 53ab374d9f PTHLexer:
- Move out logic for handling the end-of-file to LexEndOfFile (to match the Lexer) class.  The logic now mirrors the Lexer class more, which allows us to pass most of the Preprocessor test cases.

llvm-svn: 59768
2008-11-21 00:58:35 +00:00
Fariborz Jahanian c2ad6dc3b4 Consolidated @try and @synchronize into a single
code gen. method.

llvm-svn: 59767
2008-11-21 00:49:24 +00:00
Bill Wendling 526cbee901 Update comment.
llvm-svn: 59766
2008-11-21 00:45:00 +00:00
Ted Kremenek dfcbcfe328 Add checker test case: warn about returning an uninitialized value to the caller.
llvm-svn: 59765
2008-11-21 00:28:47 +00:00
Ted Kremenek 0b63f96ab5 - Clean up transfer function logic for 'return' statements.
- Add check for returning an undefined value to a caller.

llvm-svn: 59764
2008-11-21 00:27:44 +00:00
Oscar Fuentes 02b5c3222b CMake: Do not rebuild the world when tblgen changes but the .inc files
it produces are not affected by the change.

llvm-svn: 59763
2008-11-21 00:18:45 +00:00
Ted Kremenek c7792048ff Enable test file for 'region store' in addition to basic store.
llvm-svn: 59762
2008-11-21 00:15:15 +00:00
Dan Gohman 7b7ca502fa 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 39acb29ff8 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
Dan Gohman c602dd407c Change these schedulers to not emit no-ops. It turns out that
the RR scheduler actually does look at latency values, but it
doesn't use a hazard recognizer so it has no way to know when
a no-op is needed, as opposed to just stalling and incrementing
the cycle count.

llvm-svn: 59759
2008-11-21 00:10:42 +00:00
Bill Wendling f5260d29c2 Fix error where it wasn't getting the correct caller function.
llvm-svn: 59758
2008-11-21 00:09:21 +00:00
Bill Wendling 26c6a3e736 If the function being inlined has a higher stack protection level than the
inlining function, then increase the stack protection level on the inlining
function.

llvm-svn: 59757
2008-11-21 00:06:32 +00:00
Bill Wendling 3d9cdd4484 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
Oscar Fuentes 50ff154ea5 CMake: More documentation.
llvm-svn: 59755
2008-11-20 23:35:09 +00:00
Dan Gohman 4fafdcfcb1 Delete redundant inline keywords.
llvm-svn: 59754
2008-11-20 22:10:21 +00:00
Dan Gohman 4b17f24047 Doxygenate comments.
llvm-svn: 59753
2008-11-20 22:09:52 +00:00
Oscar Fuentes 8395ac96c4 CMake: Some documentation. Work in progress.
llvm-svn: 59752
2008-11-20 22:05:48 +00:00
Fariborz Jahanian 75686a58f3 Support generation of objc_assign_ivar for ivar
write-barriers.

llvm-svn: 59748
2008-11-20 20:53:20 +00:00
Dan Gohman 22e9677a5e Treat mid-block labels the same as terminators when building the
MachineInstr scheduling DAG, meaning they implicitly depend on all
preceding defs. This fixes Benchmarks/Shootout-C++/except and
Regression/C++/EH/simple_rethrow in
  -relocation-model=pic -disable-post-RA-scheduler=false
mode.

llvm-svn: 59747
2008-11-20 19:58:35 +00:00
Dan Gohman 06613bc7de Add another machine-code printing pass when post-pass scheduling is run.
llvm-svn: 59746
2008-11-20 19:54:21 +00:00
Devang Patel 38642e598e Don't forget arguments!
llvm-svn: 59745
2008-11-20 19:50:17 +00:00
Ted Kremenek 111caaac58 PTHLexer:
- Move PTHLexer::GetToken() to be inside PTHLexer.cpp.
- When lexing in raw mode, null out identifiers.

llvm-svn: 59744
2008-11-20 19:49:00 +00:00
Fariborz Jahanian c1877cbc21 __weak ivar need not warn.
llvm-svn: 59743
2008-11-20 19:35:51 +00:00
Dan Gohman 52aece7eff Test -pre-RA-sched=fast too, for completeness.
llvm-svn: 59741
2008-11-20 19:26:04 +00:00
Fariborz Jahanian e881b536e8 Introducing objc_assign_ivar to clang.
llvm-svn: 59740
2008-11-20 19:23:36 +00:00
Oscar Fuentes 073b0b12a5 CMake: Option for building with -fPIC.
llvm-svn: 59739
2008-11-20 19:13:51 +00:00
Fariborz Jahanian d4081c697a Added a test case for __weak field decls. Change SetVarDeclObjCAttribute
to static function. Added comments.

llvm-svn: 59738
2008-11-20 18:10:58 +00:00
Gordon Henriksen 10b941284a Updating ignore lists.
llvm-svn: 59737
2008-11-20 16:56:53 +00:00
Ted Kremenek cbc984169f Handle another case where we should use PTHLexer as an alternative to the normal Lexer.
llvm-svn: 59736
2008-11-20 16:46:54 +00:00
Douglas Gregor 8e3e16ed2e Update C++ status
llvm-svn: 59735
2008-11-20 16:46:32 +00:00
Scott Michel 3726019aa3 CellSPU:
(a) Remove moved file (SPUAsmPrinter.cpp) to make svn happy.
(b) Remove truncated stores that will never be used.
(c) Add initial support for __muldi3 as a libcall.

llvm-svn: 59734
2008-11-20 16:36:33 +00:00
Ted Kremenek 94981e1f23 PTHLexer:
- Rename 'CurToken' and 'LastToken' to 'CurTokenIdx' and 'LastTokenIdx'
  respectively.
- Add helper methods GetToken(), AdvanceToken(), AtLastToken() to abstract away
  details of the token stream. This also allows us to easily replace their
  implementation later.

llvm-svn: 59733
2008-11-20 16:32:22 +00:00
Douglas Gregor e0e79bdef6 Add support for overloaded operator-> when used in a member access
expression (smart_ptr->mem).

llvm-svn: 59732
2008-11-20 16:27:02 +00:00
Ted Kremenek 6bc5f3ec90 Rename IsNonPragmaNonMacroLexer to IsFileLexer.
llvm-svn: 59731
2008-11-20 16:19:53 +00:00
Ted Kremenek b6df273d2c Output 'ANALYZE' messages to standard error. This should address the intermixing of 'ANALYZE' and the other diagnostics the clang driver emits to standard error.
llvm-svn: 59730
2008-11-20 16:14:48 +00:00
Douglas Gregor f49fdf8337 Fix strange quote characters
llvm-svn: 59729
2008-11-20 13:33:37 +00:00
Duncan Sands 3fa0a5afab Add some documentation.
llvm-svn: 59727
2008-11-20 10:34:43 +00:00
Daniel Dunbar 203bfdfcf3 De-unionize fields in Token class.
- This is fairly gross but although the code is conceptually the
   same, introducting the union causes gcc 4.2 on x86 (darwin, if that
   matters) to pessimize LexTokenInternal which is critical to our
   preprocessor performance.

This speeds up -Eonly lexing of Cocoa.h by ~4.7% in my timings and
reduces the code size of LexTokenInternal by 8.6%.

llvm-svn: 59725
2008-11-20 08:01:39 +00:00
Ted Kremenek c490c8877c Rewrote PTHLexer::Lex by digging through the sources of Lexer again. Now we can do basic macro expansion using the PTHLexer.
llvm-svn: 59724
2008-11-20 07:58:05 +00:00
Ted Kremenek 85b48c6e3a Add ugly "test harness" for PTHLexer that is not enabled by default. The
(temporary hack) to test the PTHLexer is that whenever we would create a Lexer
object we instead raw lex a memory buffer first and then use the PTHLexer. This
logic exists only to driver the PTHLexer and will be removed/changed in the
future. Note that the regular path using normal Lexer objects is what is used by
default.

llvm-svn: 59723
2008-11-20 07:56:33 +00:00
Ted Kremenek f4fd9b7ec4 Added virtual method 'IndirectLex' to PTHLexer. This will likely get removed in the future when we correctly handle #include processing.
llvm-svn: 59722
2008-11-20 07:54:06 +00:00
Ted Kremenek 49e4579a86 Preprocessor::isCurrentLexer() now takes a PreprocessorLexer* argument to match against CurPPLexer instead of CurLexer.
llvm-svn: 59721
2008-11-20 07:53:31 +00:00
Mon P Wang e15a540071 Allow XMM2 and XMM3 to be used for non ABI compliant code.
llvm-svn: 59720
2008-11-20 07:48:19 +00:00
Bill Wendling 165b45d385 80-column violation.
llvm-svn: 59718
2008-11-20 07:24:30 +00:00
Bill Wendling 51e015f9bb Reformatting. No functionality change.
llvm-svn: 59717
2008-11-20 07:23:34 +00:00