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 = 


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to