llvm-project/clang/lib/CodeGen
Anders Carlsson 59689ed764 Use Expr::Evaluate for case statements. Fixes PR2525
llvm-svn: 59881
2008-11-22 21:04:56 +00:00
..
CGBuilder.h Disable generation of basic block names in NDEBUG mode. 2008-11-12 00:01:12 +00:00
CGBuiltin.cpp rename Expr::tryEvaluate to Expr::Evaluate. 2008-11-16 21:24:15 +00:00
CGCXX.cpp Normalize many BasicBlock names. 2008-11-13 01:38:36 +00:00
CGCall.cpp Fix silly bug spotted by Daniel Dunbar 2008-11-15 06:35:36 +00:00
CGCall.h Large mechanical patch. 2008-09-25 21:02:23 +00:00
CGDebugInfo.cpp Introduction the DeclarationName class, as a single, general method of 2008-11-17 14:58:09 +00:00
CGDebugInfo.h reimplement debug info generation in terms of DebugInfo.h instead of 2008-11-10 06:08:34 +00:00
CGDecl.cpp Introduction the DeclarationName class, as a single, general method of 2008-11-17 14:58:09 +00:00
CGExpr.cpp Fields of ivars of struct types are considered ivars 2008-11-21 18:14:01 +00:00
CGExprAgg.cpp New AST node to access "implicit" setter/getter using property dor syntax. 2008-11-22 18:39:36 +00:00
CGExprComplex.cpp Normalize many BasicBlock names. 2008-11-13 01:38:36 +00:00
CGExprConstant.cpp Use tryEvaluate for constant exprs. 2008-11-22 02:34:39 +00:00
CGExprScalar.cpp Add spec ref to comment. 2008-11-19 11:54:05 +00:00
CGObjC.cpp New AST node to access "implicit" setter/getter using property dor syntax. 2008-11-22 18:39:36 +00:00
CGObjCGNU.cpp Consolidated @try and @synchronize into a single 2008-11-21 00:49:24 +00:00
CGObjCMac.cpp Fixed bugzilla bug# 3095 related to code gen. for @synchronized. 2008-11-21 19:21:53 +00:00
CGObjCRuntime.h Consolidated @try and @synchronize into a single 2008-11-21 00:49:24 +00:00
CGStmt.cpp Use Expr::Evaluate for case statements. Fixes PR2525 2008-11-22 21:04:56 +00:00
CGValue.h Fields of ivars of struct types are considered ivars 2008-11-21 18:14:01 +00:00
CMakeLists.txt CMake: Builds and installs clang binary and libs (no docs yet). It 2008-10-26 00:56:18 +00:00
CodeGenFunction.cpp Introduction the DeclarationName class, as a single, general method of 2008-11-17 14:58:09 +00:00
CodeGenFunction.h New AST node to access "implicit" setter/getter using property dor syntax. 2008-11-22 18:39:36 +00:00
CodeGenModule.cpp reapply the (corrected) patch to use the new llvm intrinsics for memcpy/memmove etc. 2008-11-21 16:43:15 +00:00
CodeGenModule.h Add option argument to GetAddrOfConstantString to use for name of 2008-10-17 21:56:50 +00:00
CodeGenTypes.cpp Lift out ABIInfo abstract base class. 2008-10-13 17:02:26 +00:00
CodeGenTypes.h Lift out ABIInfo abstract base class. 2008-10-13 17:02:26 +00:00
Makefile Make a major restructuring of the clang tree: introduce a top-level 2008-03-15 23:59:48 +00:00
ModuleBuilder.cpp Add GetModule accessor to ModuleBuilder 2008-10-21 19:55:09 +00:00
README.txt Fix redundant load of bit-fields on assignment (to get the updated 2008-11-19 09:36:46 +00:00

README.txt

IRgen optimization opportunities.

//===---------------------------------------------------------------------===//

The common pattern of
--
short x; // or char, etc
(x == 10)
--
generates an zext/sext of x which can easily be avoided.

//===---------------------------------------------------------------------===//

Bitfields accesses can be shifted to simplify masking and sign
extension. For example, if the bitfield width is 8 and it is
appropriately aligned then is is a lot shorter to just load the char
directly.

//===---------------------------------------------------------------------===//