[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c

Chris Lattner lattner at cs.uiuc.edu
Fri May 7 12:29:05 PDT 2004


Changes in directory llvm-gcc/gcc:

llvm-expand.c updated: 1.37 -> 1.38

---
Log message:

Minor cleanups, do not unconditionally force array indexes to long anymore


---
Diffs of the changes:  (+6 -6)

Index: llvm-gcc/gcc/llvm-expand.c
diff -u llvm-gcc/gcc/llvm-expand.c:1.37 llvm-gcc/gcc/llvm-expand.c:1.38
--- llvm-gcc/gcc/llvm-expand.c:1.37	Fri May  7 11:59:33 2004
+++ llvm-gcc/gcc/llvm-expand.c	Fri May  7 12:28:45 2004
@@ -5221,11 +5221,12 @@
     break;
 
   case ARRAY_REF: {
-    llvm_type *Op0Ty = llvm_type_get_from_tree(TREE_TYPE(TREE_OPERAND(exp, 0)));
+    tree tOp0 = TREE_OPERAND(exp, 0), tOp1 = TREE_OPERAND(exp, 1);
+    llvm_type *Op0Ty = llvm_type_get_from_tree(TREE_TYPE(tOp0));
 
     if (llvm_type_is_composite(Op0Ty)) {
-      llvm_value *Op0 = llvm_expand_lvalue_expr(Fn, TREE_OPERAND(exp, 0), 0, 0);
-      llvm_value *Op1 = llvm_expand_expr(Fn, TREE_OPERAND(exp, 1), 0);
+      llvm_value *Op0 = llvm_expand_lvalue_expr(Fn, tOp0, 0, 0);
+      llvm_value *Op1 = llvm_expand_expr(Fn, tOp1, 0);
       Op1 = cast_if_type_not_equal(Fn, Op1, LongTy);
       Result = append_inst(Fn, create_gep3(Op0, llvm_constant_long_0, Op1));
     } else {
@@ -5234,12 +5235,11 @@
        * take a pointer as the first operand.  In this case, we generate a two
        * operand GEP.
        */
-      llvm_value *Op0 = llvm_expand_expr(Fn, TREE_OPERAND(exp, 0), 0);
-      llvm_value *Op1 = llvm_expand_expr(Fn, TREE_OPERAND(exp, 1), 0);
+      llvm_value *Op0 = llvm_expand_expr(Fn, tOp0, 0);
+      llvm_value *Op1 = llvm_expand_expr(Fn, tOp1, 0);
       llvm_type *IntPtrTy =
         llvm_type_get_integer(llvm_type_get_size(VoidPtrTy)*8, 0);
       Op1 = cast_if_type_not_equal(Fn, Op1, IntPtrTy);
-      Op1 = cast_if_type_not_equal(Fn, Op1, LongTy);
       /* FIXME: What do we do about bitfields here??? */
       
       assert(Op0->Ty->ID == PointerTyID &&





More information about the llvm-commits mailing list