diff --git a/compiler/llvm/hlcgllvm.pas b/compiler/llvm/hlcgllvm.pas
index 4df45af42b..b3aa17aa5f 100644
--- a/compiler/llvm/hlcgllvm.pas
+++ b/compiler/llvm/hlcgllvm.pas
@@ -2066,7 +2066,6 @@ implementation
       hreg1,
       hreg2: tregister;
       tmpref: treference;
-      pointedsize: asizeint;
     begin
       if ref.alignment=0 then
         internalerror(2016072203);
@@ -2079,41 +2078,9 @@ implementation
           result:=ref;
           exit;
         end;
-      case ptrdef.typ of
-        pointerdef:
-          begin
-            pointedsize:=tpointerdef(ptrdef).pointeddef.size;
-            { void, formaldef }
-            if pointedsize=0 then
-              pointedsize:=1;
-          end;
-        else
-          begin
-            { pointedsize is only used if the offset <> 0, to see whether we
-              can use getelementptr if it's an exact multiple -> set pointedsize
-              to a value that will never be a multiple as we can't "index" other
-              types }
-            pointedsize:=ref.offset+1;
-          end;
-      end;
-      hreg2:=getaddressregister(list,ptrdef);
-      { symbol+offset or base+offset with offset a multiple of the size ->
-        use getelementptr }
-      if (ref.index=NR_NO) and
-         (ref.offset mod pointedsize=0) then
-        begin
-          ptrindex:=ref.offset div pointedsize;
-          if assigned(ref.symbol) then
-            reference_reset_symbol(tmpref,ref.symbol,0,ref.alignment,ref.volatility)
-          else
-            reference_reset_base(tmpref,ptrdef,ref.base,0,ref.temppos,ref.alignment,ref.volatility);
-          list.concat(taillvm.getelementptr_reg_size_ref_size_const(hreg2,ptrdef,tmpref,ptruinttype,ptrindex,assigned(ref.symbol)));
-          reference_reset_base(result,ptrdef,hreg2,0,ref.temppos,ref.alignment,ref.volatility);
-          exit;
-        end;
-      { for now, perform all calculations using plain pointer arithmetic. Later
-        we can look into optimizations based on getelementptr for structured
-        accesses (if only to prevent running out of virtual registers).
+      { At this levevl, perform all calculations using plain pointer arithmetic.
+        Optimizations based on getelementptr for structured accesses need to be
+        performed at the node tree level.
 
         Assumptions:
           * symbol/base register: always type "ptrdef"