Commit Graph

50149 Commits

Author SHA1 Message Date
Dan Gohman e2d8e5ff97 There is no InstrStage class.
llvm-svn: 59480
2008-11-18 01:05:04 +00:00
Ted Kremenek 6b73291462 Add hooks to use PTHLexer::Lex instead of Lexer::Lex when CurLexer is null.
Performance tests on Cocoa.h (using the regular Lexer) shows no performance
difference.

llvm-svn: 59479
2008-11-18 01:04:47 +00:00
Ted Kremenek e2c23daa14 Update Xcode project.
llvm-svn: 59478
2008-11-18 00:57:33 +00:00
Ted Kremenek 59e003e538 Added conditional guard 'if (CurLexer)' when using SetCommentRetentionState().
This is because the PTHLexer will not support this method. Performance testing
on preprocessing Cocoa.h shows that this results in a negligible performance
difference (less than 1%).

I tried making Lexer::SetCommentRetentionState() an out-of-line function (a
precursor to making it a virtual function in PreprocessorLexer) and noticed a 1%
decrease in speed (it is called in a hot part of the Preprocessor).

llvm-svn: 59477
2008-11-18 00:43:07 +00:00
Devang Patel f1e9329209 Give SIToFPInst preference over UIToFPInst because it is faster on platforms that are widely used.
llvm-svn: 59476
2008-11-18 00:40:02 +00:00
Dan Gohman 5ebdb98a6e Avoid using a loop in ReleasePred and ReleaseSucc methods to compute the
new CycleBound value. Instead, just update CycleBound on each call.
Also, make ReleasePred and ReleaseSucc methods more consistent accross
the various schedulers.

This also happens to make ScheduleDAGRRList's CycleBound computation
somewhat more interesting, though it still doesn't have any noticeable
effect, because no current targets that use the register-pressure
reduction scheduler provide pipeline models.

llvm-svn: 59475
2008-11-18 00:38:59 +00:00
Ted Kremenek 30cd88caab Change a bunch of uses of 'CurLexer->' to 'CurPPLexer->', which should be the
alias for the current PreprocessorLexer. No functionality change. Performance
testing shows this results in no performance degradation when preprocessing
Cocoa.h.

llvm-svn: 59474
2008-11-18 00:34:22 +00:00
Ted Kremenek 68ef9fc6ae - Add 'CurPPLexer' to Preprocessor to keep track of the current
PreprocessorLexer, which will either be a 'Lexer' or 'PTHLexer'.
- Added stub field 'CurPTHLexer' to keep track of the current PTHLexer.
- Modified IncludeStackInfo to track both the current PTHLexer and
  current PreprocessorLexer.

llvm-svn: 59472
2008-11-18 00:12:49 +00:00
Devang Patel 180afd2c55 While handling floating point IVs lift restrictions on initial value and increment value.
llvm-svn: 59471
2008-11-17 23:27:13 +00:00
Sebastian Redl 8071edb297 Implement effects of 'mutable', and a few comments from Chris on its parsing.
llvm-svn: 59470
2008-11-17 23:24:37 +00:00
Douglas Gregor 92751d41a0 Eliminate all of the placeholder identifiers used for constructors,
destructors, and conversion functions. The placeholders were used to
work around the fact that the parser and some of Sema really wanted
declarators to have simple identifiers; now, the code that deals with
declarators will use DeclarationNames.

llvm-svn: 59469
2008-11-17 22:58:34 +00:00
Ted Kremenek c775712192 Fold assertion into second valid else branch. This removes a compiler warning
where the control reaches the end of a non-void function and also allows the
compiler to generate better code.  When this assertion is false we can easily
add more else cases.

llvm-svn: 59468
2008-11-17 22:55:12 +00:00
Steve Naroff 773cdc7c0d Fix <rdar://problem/6333904> [sema] message lookup on super is incorrect
Missing special lookup rule in Sema::ActOnInstanceMessage().

llvm-svn: 59467
2008-11-17 22:29:32 +00:00
Devang Patel aa3d68d301 Handle floating point ivs during doInitialization().
llvm-svn: 59466
2008-11-17 21:32:02 +00:00
Dan Gohman 92a36d7a78 Eliminate some trivial differences between the ScheduleNodeTopDown
functions in these two schedulers.

llvm-svn: 59465
2008-11-17 21:31:02 +00:00
Duncan Sands f046b50ecd Add soft float support for a bunch more operations. Original
patch by Richard Osborne, tweaked and extended by your humble
servant.

llvm-svn: 59464
2008-11-17 20:52:38 +00:00
Douglas Gregor 0f492d1a11 Only test test/CodeGenObjC/synchronized.m as a i686-apple-darwin8 target
llvm-svn: 59463
2008-11-17 20:45:14 +00:00
Douglas Gregor ae2fbad373 Updated IdentifierResolver to deal with DeclarationNames. The names of
C++ constructors, destructors, and conversion functions now have a
FETokenInfo field that IdentifierResolver can access, so that these
special names are handled just like ordinary identifiers. A few other
Sema routines now use DeclarationNames instead of IdentifierInfo*'s.

To validate this design, this code also implements parsing and
semantic analysis for id-expressions that name conversion functions,
e.g.,

  return operator bool();

The new parser action ActOnConversionFunctionExpr takes the result of
parsing "operator type-id" and turning it into an expression, using
the IdentifierResolver with the DeclarationName of the conversion
function. ActOnDeclarator pushes those conversion function names into
scope so that the IdentifierResolver can find them, of course.

llvm-svn: 59462
2008-11-17 20:34:05 +00:00
Dan Gohman 4f474b092e Don't bother doing latency calculations in the "fast" scheduler.
llvm-svn: 59461
2008-11-17 19:52:36 +00:00
Chris Lattner 9b3bbe9db7 Implement rdar://6319320: give a good diagnostic for cases where people
are trying to use the old GCC "casts as lvalue" extension.  We don't and
will hopefully never support this.

llvm-svn: 59460
2008-11-17 19:51:54 +00:00
Steve Naroff 753567f2c1 Fix <rdar://problem/6316324> [sema] spurious warning on comparison of qualified id.
llvm-svn: 59459
2008-11-17 19:49:16 +00:00
Dan Gohman a687fd8339 Use SUnit's CycleBound field instead of duplicating it in
a side-car datastructure

llvm-svn: 59458
2008-11-17 19:45:19 +00:00
Ted Kremenek f9f58f085d Updated checker build.
llvm-svn: 59457
2008-11-17 19:26:13 +00:00
Dale Johannesen 39b34e6d32 Remove these, which test for optimizations that
are not currently done (cf PowerPC/README.txt).

llvm-svn: 59456
2008-11-17 18:57:45 +00:00
Dale Johannesen aae3a4f864 Move some former testcases (low-probability codegen
optimizations) into this wishlist.

llvm-svn: 59455
2008-11-17 18:56:34 +00:00
Devang Patel b63c74730c Let AnalyzeAlloca() remove debug intrinsics.
llvm-svn: 59454
2008-11-17 18:37:53 +00:00
Fariborz Jahanian e3126a24e3 Test case for objective-c's @synchronized statement.
llvm-svn: 59451
2008-11-17 18:03:28 +00:00
Richard Osborne 6751b4a604 Don't produce ADDC/ADDE when expanding SHL unless they are legal
for the target. This fixes PR3080.

llvm-svn: 59450
2008-11-17 17:34:31 +00:00
Mikhail Glushenkov 20313c954e Support dependencies between plugins by priority-sorting.
llvm-svn: 59449
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov 7549d568d5 Filter ToolPropertiesList to exclude all Tools not mentioned in the compilation graph.
llvm-svn: 59448
2008-11-17 17:29:42 +00:00
Mikhail Glushenkov faae122e07 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
Douglas Gregor accde4343c Add TODO item for adding more source-range information to declarators
llvm-svn: 59446
2008-11-17 17:14:10 +00:00
Dan Gohman 17c226b8ca Don't use the isPending flag to mean what the isAvailable flag means.
llvm-svn: 59445
2008-11-17 16:37:30 +00:00
Steve Naroff ecf2bb8724 Fix <rdar://problem/6320086> parser rejects block capturing ivar.
llvm-svn: 59444
2008-11-17 16:28:52 +00:00
Douglas Gregor d69246bd5b Some cleanups for C++ operator overloading
llvm-svn: 59443
2008-11-17 16:14:12 +00:00
Douglas Gregor 9edcc802c3 Simplify error messages for two-parameter overloaded increment/decrement operators
llvm-svn: 59442
2008-11-17 15:03:30 +00:00
Douglas Gregor 77324f3854 Introduction the DeclarationName class, as a single, general method of
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.

llvm-svn: 59441
2008-11-17 14:58:09 +00:00
Chris Lattner d1f5e5d304 pad header out to 80 cols
llvm-svn: 59438
2008-11-17 04:06:37 +00:00
Chris Lattner 8ae89ca65e add OperatorKinds.* to the project.
llvm-svn: 59437
2008-11-17 04:05:52 +00:00
Chris Lattner bcca40b264 line up some columns, no functionality change.
llvm-svn: 59436
2008-11-17 04:03:07 +00:00
Eli Friedman dcbcbb827d A few corrections to the expr constant work. Not enabled at the
moment.

llvm-svn: 59435
2008-11-17 03:57:28 +00:00
Zhongxing Xu a5055a03c6 move partial template specialization to FoldingSet.h.
llvm-svn: 59434
2008-11-17 02:40:00 +00:00
Anders Carlsson 4425d8e37b More expr constant work. (Off by default).
llvm-svn: 59433
2008-11-17 01:58:55 +00:00
Mon P Wang 4964368e0d Fixed legalization of CONVERT_RNDSAT for integers.
llvm-svn: 59432
2008-11-17 00:41:12 +00:00
Lang Hames 41df63945d Removed 2008-10-17-SpillerBug.ll as it does not provide an accurate test of PR2898.
llvm-svn: 59431
2008-11-16 23:30:12 +00:00
Anders Carlsson 899c7050b6 Address some comments Eli had.
llvm-svn: 59430
2008-11-16 22:46:56 +00:00
Nuno Lopes 527b5a6858 use HandleConversionToBool() to check if a given cond is foldable (per Eli's comment)
llvm-svn: 59429
2008-11-16 22:06:39 +00:00
Anders Carlsson 9ddf7bedf9 More complex float evaluator support.
llvm-svn: 59428
2008-11-16 21:51:21 +00:00
Chris Lattner 807e8c5d63 Describe how constant folding and i-c-e diagnosing should work.
Unfortunately, we're not here yet, but eventually Expr::isConstantExpr
and friends should go away.

llvm-svn: 59427
2008-11-16 21:48:07 +00:00
Chris Lattner 67d7b9204c rename Expr::tryEvaluate to Expr::Evaluate.
llvm-svn: 59426
2008-11-16 21:24:15 +00:00