[all-commits] [llvm/llvm-project] bc76da: [CodeGen] Move ARMCodegenPrepare to TypePromotion

Sam Parker via All-commits all-commits at lists.llvm.org
Tue Dec 3 03:13:20 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bc76dadb3cf16c38564ccb1cc54206279b7c54bc
      https://github.com/llvm/llvm-project/commit/bc76dadb3cf16c38564ccb1cc54206279b7c54bc
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M llvm/include/llvm/CodeGen/Passes.h
    M llvm/include/llvm/InitializePasses.h
    M llvm/lib/CodeGen/CMakeLists.txt
    M llvm/lib/CodeGen/CodeGen.cpp
    A llvm/lib/CodeGen/TypePromotion.cpp
    M llvm/lib/Target/ARM/ARM.h
    R llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp
    M llvm/lib/Target/ARM/ARMTargetMachine.cpp
    M llvm/lib/Target/ARM/CMakeLists.txt
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-icmps.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-overflow.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-phis-ret.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-pointers.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-signed-icmps.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-signed.ll
    R llvm/test/CodeGen/ARM/CGP/arm-cgp-switch.ll
    R llvm/test/CodeGen/ARM/CGP/clear-structures.ll
    M llvm/test/CodeGen/ARM/O3-pipeline.ll
    A llvm/test/Transforms/TypePromotion/ARM/calls.ll
    A llvm/test/Transforms/TypePromotion/ARM/casts.ll
    A llvm/test/Transforms/TypePromotion/ARM/clear-structures.ll
    A llvm/test/Transforms/TypePromotion/ARM/icmps.ll
    A llvm/test/Transforms/TypePromotion/ARM/lit.local.cfg
    A llvm/test/Transforms/TypePromotion/ARM/phis-ret.ll
    A llvm/test/Transforms/TypePromotion/ARM/pointers.ll
    A llvm/test/Transforms/TypePromotion/ARM/signed-icmps.ll
    A llvm/test/Transforms/TypePromotion/ARM/signed.ll
    A llvm/test/Transforms/TypePromotion/ARM/switch.ll
    A llvm/test/Transforms/TypePromotion/ARM/wrapping.ll
    M llvm/tools/opt/opt.cpp

  Log Message:
  -----------
  [CodeGen] Move ARMCodegenPrepare to TypePromotion

Convert ARMCodeGenPrepare into a generic type promotion pass by:
- Removing the insertion of arm specific intrinsics to handle narrow
  types as we weren't using this.
- Removing ARMSubtarget references.
- Now query a generic TLI object to know which types should be
  promoted and what they should be promoted to.
- Move all codegen tests into Transforms folder and testing using opt
  and not llc, which is how they should have been written in the
  first place...

The pass searches up from icmp operands in an attempt to safely
promote types so we can avoid generating unnecessary unsigned extends
during DAG ISel.

Differential Revision: https://reviews.llvm.org/D69556




More information about the All-commits mailing list