[cfe-commits] r59213 - /cfe/trunk/lib/CodeGen/CGExpr.cpp

Daniel Dunbar daniel at zuster.org
Wed Nov 12 18:20:34 PST 2008


Author: ddunbar
Date: Wed Nov 12 20:20:34 2008
New Revision: 59213

URL: http://llvm.org/viewvc/llvm-project?rev=59213&view=rev
Log:
Easy IRgen improvement for bitfields, don't emit x >> 0.
 - Logic such as this quite possibly should be optional builder
   behavior.

Modified:
    cfe/trunk/lib/CodeGen/CGExpr.cpp

Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=59213&r1=59212&r2=59213&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Wed Nov 12 20:20:34 2008
@@ -214,8 +214,9 @@
   llvm::Value *Val = Builder.CreateLoad(Ptr, LV.isVolatileQualified(), "tmp");
   
   // Shift to proper location.
-  Val = Builder.CreateLShr(Val, llvm::ConstantInt::get(EltTy, StartBit), 
-                           "bf.lo");
+  if (StartBit)
+    Val = Builder.CreateLShr(Val, llvm::ConstantInt::get(EltTy, StartBit), 
+                             "bf.lo");
   
   // Mask off unused bits.
   llvm::Constant *LowMask = 





More information about the cfe-commits mailing list