[PATCH] D46018: [GlobalISel][IRTranslator] Split aggregates during IR translation

Roman Tereshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 15 08:30:56 PDT 2018


rtereshin added a comment.

Nested / shared / repeated aggregate constants & multi-level index tests: test_cons.ll <https://gist.github.com/ramntry/3290e0bea953675b685801f71418da66> - also seems to be translated correctly:

  ./bin/llc -O0 -global-isel=true -global-isel-abort=2 -mtriple aarch64--  -stop-after instruction-select test_cons.ll -o - -simplify-mir -verify-machineinstrs

  body:             |
    bb.1.entry:
      liveins: $x0
  
      %0:gpr64sp = COPY $x0
      %34:gpr32 = MOVi32imm 10
      %33:gpr32 = MOVi32imm 20
      %32:gpr32 = MOVi32imm 50
      STRBBui %34, %0, 0 :: (store 1 into %ir.dst)
      STRBBui %33, %0, 1 :: (store 1 into %ir.dst + 1)
      STRBBui %34, %0, 2 :: (store 1 into %ir.dst + 2)
      STRBBui %33, %0, 3 :: (store 1 into %ir.dst + 3)
      STRBBui %32, %0, 4 :: (store 1 into %ir.dst + 4)
      STRBBui %34, %0, 5 :: (store 1 into %ir.dst + 5)
      STRBBui %33, %0, 6 :: (store 1 into %ir.dst + 6)
      STRBBui %33, %0, 7 :: (store 1 into %ir.dst + 7)
      STRBBui %34, %0, 0 :: (store 1 into %ir.dst)
      STRBBui %33, %0, 1 :: (store 1 into %ir.dst + 1)
      STRBBui %34, %0, 2 :: (store 1 into %ir.dst + 2)
      STRBBui %33, %0, 3 :: (store 1 into %ir.dst + 3)
      STRBBui %33, %0, 4 :: (store 1 into %ir.dst + 4)
      STRBBui %34, %0, 5 :: (store 1 into %ir.dst + 5)
      STRBBui %33, %0, 6 :: (store 1 into %ir.dst + 6)
      STRBBui %33, %0, 7 :: (store 1 into %ir.dst + 7)
      RET_ReallyLR

(this is already changed to pass values in bytes (instead of bits) as offset and align parameters to pointer info of memory operands)


Repository:
  rL LLVM

https://reviews.llvm.org/D46018





More information about the llvm-commits mailing list