llvm-project/clang/lib/CodeGen
Chris Lattner 16ba91396a Change the diagnostics interface to take an array of pointers to
strings instead of array of strings.  This reduces string copying
in some not-very-important cases, but paves the way for future 
improvements.

llvm-svn: 59494
2008-11-18 04:56:44 +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 Add a new expression node, CXXOperatorCallExpr, which expresses a 2008-11-14 16:09:21 +00:00
CGExprAgg.cpp Normalize many BasicBlock names. 2008-11-13 01:38:36 +00:00
CGExprComplex.cpp Normalize many BasicBlock names. 2008-11-13 01:38:36 +00:00
CGExprConstant.cpp A few corrections to the expr constant work. Not enabled at the 2008-11-17 03:57:28 +00:00
CGExprScalar.cpp daniel prefers completed thoughts. 2008-11-16 06:16:27 +00:00
CGObjC.cpp Start implementing support for @synchonized with the darwin ObjC API. 2008-11-15 21:26:17 +00:00
CGObjCGNU.cpp Introduction the DeclarationName class, as a single, general method of 2008-11-17 14:58:09 +00:00
CGObjCMac.cpp Introduction the DeclarationName class, as a single, general method of 2008-11-17 14:58:09 +00:00
CGObjCRuntime.h Start implementing support for @synchonized with the darwin ObjC API. 2008-11-15 21:26:17 +00:00
CGStmt.cpp Start implementing support for @synchonized with the darwin ObjC API. 2008-11-15 21:26:17 +00:00
CGValue.h Add FIXME about potential problem in how property ref lvalues are handled. 2008-10-17 23:02:24 +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 Start implementing support for @synchonized with the darwin ObjC API. 2008-11-15 21:26:17 +00:00
CodeGenModule.cpp Change the diagnostics interface to take an array of pointers to 2008-11-18 04:56:44 +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 Start a README.txt of possible optimizations to do in IRgen. 2008-11-12 12:31:28 +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.

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

Bitfields should not reload the stored value just to return the
correct result.

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