[all-commits] [llvm/llvm-project] 9c84d2: [flang] Generate TBAA information.

Slava Zakharin via All-commits all-commits at lists.llvm.org
Tue Jan 17 10:19:44 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9c84d20fa69006adcbbaf424f3ef674298045f78
      https://github.com/llvm/llvm-project/commit/9c84d20fa69006adcbbaf424f3ef674298045f78
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-01-17 (Tue, 17 Jan 2023)

  Changed paths:
    M flang/include/flang/Optimizer/CodeGen/CGPasses.td
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/include/flang/Tools/CLOptions.inc
    M flang/lib/Optimizer/CodeGen/CMakeLists.txt
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/CodeGen/DescriptorModel.h
    A flang/lib/Optimizer/CodeGen/TBAABuilder.cpp
    A flang/lib/Optimizer/CodeGen/TBAABuilder.h
    M flang/lib/Optimizer/CodeGen/TypeConverter.h
    A flang/test/Fir/tbaa.fir

  Log Message:
  -----------
  [flang] Generate TBAA information.

This is initial version of TBAA information generation for Flang
generated IR. The desired behavior is that TBAA type descriptors
are generated for FIR types during FIR to LLVM types conversion,
and then TBAA access tags are attached to memory accessing operations
when they are converted to LLVM IR dialect.

In the initial version the type conversion is not producing
TBAA type descriptors, and all memory accesses are just partitioned
into two sets of box and non-box accesses, which can never alias.

The TBAA generation is enabled by default at >O0 optimization levels.
TBAA generation may also be enabled via `apply-tbaa` option of
`fir-to-llvm-ir` conversion pass. `-mllvm -disable-tbaa` engineering
option allows disabling TBAA generation to override Flang's default
(e.g. when -O1 is used).

SPEC CPU2006/437.leslie3d speeds up by more than 2x on Icelake.

Reviewed By: jeanPerier, clementval

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




More information about the All-commits mailing list