Displaying 2 results from an estimated 2 matches for "arrayaddr".
2009 Jan 09
2
[LLVMdev] RFC: Store alignment should be LValue alignment, not source alignment
...ERENCE_TYPE ||
+ TREE_CODE (ArrayTreeType) == BLOCK_POINTER_TYPE) &&
"Unknown ARRAY_REF!");
// As an LLVM extension, we allow ARRAY_REF with a pointer as the
first
// operand. This construct maps directly to a getelementptr
instruction.
Value *ArrayAddr;
+ unsigned ArrayAlign;
- if (TREE_CODE(ArrayType) == ARRAY_TYPE) {
+ if (TREE_CODE(ArrayTreeType) == ARRAY_TYPE) {
// First subtract the lower bound, if any, in the type of the
index.
tree LowerBound = array_ref_low_bound(exp);
if (!integer_zerop(LowerBound))
@@ -5956,8 +59...
2009 Jan 09
0
[LLVMdev] RFC: Store alignment should be LValue alignment, not source alignment
...f (DECL_USER_ALIGN(exp) || Alignment <
> (unsigned)DECL_ALIGN_UNIT(exp))
> + Alignment = DECL_ALIGN_UNIT(exp);
> + }
> +
> + return LValue(BitCastToType(Decl, PTy), Alignment);
Since I don't know what this case handles, I can't comment on this.
> LValue ArrayAddrLV = EmitLV(Array);
> assert(!ArrayAddrLV.isBitfield() && "Arrays cannot be
> bitfields!");
> ArrayAddr = ArrayAddrLV.Ptr;
> + ArrayAlign = ArrayAddrLV.Alignment;
Couldn't this be expr_align(Array)?
> + const Type *ATy = cast<PointerType&...