Author: Tom Eccles
Date: 2025-12-01T11:18:40Z
New Revision: b35af896c64637020fc2a77d1e16cb00224bfd36

URL: 
https://github.com/llvm/llvm-project/commit/b35af896c64637020fc2a77d1e16cb00224bfd36
DIFF: 
https://github.com/llvm/llvm-project/commit/b35af896c64637020fc2a77d1e16cb00224bfd36.diff

LOG: Revert "[flang][TBAA] refine TARGET/POINTER encoding (#169544)"

This reverts commit 34c44f21ae9bf5532e467fa2e942fe61715d1394.

Added: 
    

Modified: 
    flang/include/flang/Optimizer/Analysis/TBAAForest.h
    flang/lib/Optimizer/Analysis/TBAAForest.cpp
    flang/lib/Optimizer/Transforms/AddAliasTags.cpp
    flang/test/Driver/tco-test-gen.fir
    flang/test/Fir/tbaa-codegen2.fir
    flang/test/Transforms/tbaa-for-common-vars.fir
    flang/test/Transforms/tbaa-for-global-equiv-vars.fir
    flang/test/Transforms/tbaa-for-local-vars.fir
    flang/test/Transforms/tbaa-with-dummy-scope.fir
    flang/test/Transforms/tbaa-with-dummy-scope2.fir
    flang/test/Transforms/tbaa2.fir
    flang/test/Transforms/tbaa3.fir
    flang/test/Transforms/tbaa4.fir

Removed: 
    


################################################################################
diff  --git a/flang/include/flang/Optimizer/Analysis/TBAAForest.h 
b/flang/include/flang/Optimizer/Analysis/TBAAForest.h
index 0b70778eba3af..b4932594114a1 100644
--- a/flang/include/flang/Optimizer/Analysis/TBAAForest.h
+++ b/flang/include/flang/Optimizer/Analysis/TBAAForest.h
@@ -99,25 +99,11 @@ struct TBAATree {
   //   |- "any data access"
   //      |
   //      |- "dummy arg data"
-  //        |
-  //        |- <dummy arg name 1>
-  //        |- <dummy arg name 2>
-  //      |- "target data" <-- Any POINTER variable or TARGET dummy arg
-  //        |
-  //        |- <target name 1> <--- any TARGET variable which isn't a dummy arg
-  //        |- <target name 2>
-  //      |- "allocated data"
-  //        |
-  //        |- <allocated name 1>
-  //        |- <allocated name 2>
-  //      |- "direct data"
-  //        |
-  //        |- <direct name 1>
-  //        |- <direct name 2>
-  //      |- "global data"
-  //        |
-  //        |- <global name 1>
-  //        |- <global name 2>
+  //      |- "target data"
+  //         |
+  //         |- "allocated data"
+  //         |- "direct data"
+  //         |- "global data"
   static TBAATree buildTree(mlir::StringAttr functionName);
 
 private:

diff  --git a/flang/lib/Optimizer/Analysis/TBAAForest.cpp 
b/flang/lib/Optimizer/Analysis/TBAAForest.cpp
index 7154785c62c75..44a0348da3a6f 100644
--- a/flang/lib/Optimizer/Analysis/TBAAForest.cpp
+++ b/flang/lib/Optimizer/Analysis/TBAAForest.cpp
@@ -66,9 +66,12 @@ fir::TBAATree::TBAATree(mlir::LLVM::TBAATypeDescriptorAttr 
anyAccess,
                         mlir::LLVM::TBAATypeDescriptorAttr dataRoot,
                         mlir::LLVM::TBAATypeDescriptorAttr boxMemberTypeDesc)
     : targetDataTree(dataRoot.getContext(), "target data", dataRoot),
-      globalDataTree(dataRoot.getContext(), "global data", dataRoot),
-      allocatedDataTree(dataRoot.getContext(), "allocated data", dataRoot),
+      globalDataTree(dataRoot.getContext(), "global data",
+                     targetDataTree.getRoot()),
+      allocatedDataTree(dataRoot.getContext(), "allocated data",
+                        targetDataTree.getRoot()),
       dummyArgDataTree(dataRoot.getContext(), "dummy arg data", dataRoot),
-      directDataTree(dataRoot.getContext(), "direct data", dataRoot),
+      directDataTree(dataRoot.getContext(), "direct data",
+                     targetDataTree.getRoot()),
       anyAccessDesc(anyAccess), boxMemberTypeDesc(boxMemberTypeDesc),
       anyDataTypeDesc(dataRoot) {}

diff  --git a/flang/lib/Optimizer/Transforms/AddAliasTags.cpp 
b/flang/lib/Optimizer/Transforms/AddAliasTags.cpp
index b592cee794f33..0221c7a8184d7 100644
--- a/flang/lib/Optimizer/Transforms/AddAliasTags.cpp
+++ b/flang/lib/Optimizer/Transforms/AddAliasTags.cpp
@@ -692,9 +692,8 @@ void 
AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
     LLVM_DEBUG(llvm::dbgs().indent(2)
                << "Found reference to dummy argument at " << *op << "\n");
     std::string name = 
getFuncArgName(llvm::cast<mlir::Value>(source.origin.u));
-    // POINTERS can alias with any POINTER or TARGET. Assume that TARGET dummy
-    // arguments might alias with each other (because of the "TARGET" hole for
-    // dummy arguments). See flang/docs/Aliasing.md.
+    // If it is a TARGET or POINTER, then we do not care about the name,
+    // because the tag points to the root of the subtree currently.
     if (source.isTargetOrPointer()) {
       tag = state.getFuncTreeWithScope(func, scopeOp).targetDataTree.getTag();
     } else if (!name.empty()) {
@@ -717,12 +716,7 @@ void 
AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
                << "Found reference to global " << globalName.str() << " at "
                << *op << "\n");
     if (source.isPointer()) {
-      // Pointers can alias with any pointer or target.
       tag = state.getFuncTreeWithScope(func, scopeOp).targetDataTree.getTag();
-    } else if (source.isTarget()) {
-      // Targets could alias with any pointer but not with each other.
-      tag = state.getFuncTreeWithScope(func, scopeOp)
-                .targetDataTree.getTag(globalName);
     } else {
       // In general, place the tags under the "global data" root.
       fir::TBAATree::SubtreeState *subTree =
@@ -782,17 +776,9 @@ void 
AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
       const char *name = glbl.getRootReference().data();
       LLVM_DEBUG(llvm::dbgs().indent(2) << "Found reference to direct " << name
                                         << " at " << *op << "\n");
-      // Pointer can alias with any pointer or target so that gets the root.
       if (source.isPointer())
         tag = state.getFuncTreeWithScope(func, 
scopeOp).targetDataTree.getTag();
-      // Targets could alias with any pointer but not with each other so they
-      // get their own node inside of the target data tree.
-      else if (source.isTarget())
-        tag = state.getFuncTreeWithScope(func, scopeOp)
-                  .targetDataTree.getTag(name);
       else
-        // Boxes that are not pointers or targets cannot alias with those that
-        // are. Put them under global data.
         tag = state.getFuncTreeWithScope(func, scopeOp)
                   .directDataTree.getTag(name);
     } else {

diff  --git a/flang/test/Driver/tco-test-gen.fir 
b/flang/test/Driver/tco-test-gen.fir
index 438804ce42b76..b39295d72918f 100644
--- a/flang/test/Driver/tco-test-gen.fir
+++ b/flang/test/Driver/tco-test-gen.fir
@@ -77,13 +77,13 @@ func.func @_QPtest(%arg0: !fir.ref<i32> {fir.bindc_name = 
"num"}, %arg1: !fir.re
 // CHECK:           llvm.cond_br %[[VAL_17]], ^bb2, ^bb3
 // CHECK:         ^bb2:
 
-// AA:              llvm.store %[[VAL_15]], %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, access_type = <id = 
"allocated data/_QFtestEi", members = {<#llvm.tbaa_type_desc<id = "allocated 
data", members = {<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, offset = 0>]} : i32, 
!llvm.ptr
+// AA:              llvm.store %[[VAL_15]], %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, access_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, offset = 0>]} : i32, !llvm.ptr
 // NOAA:            llvm.store %[[VAL_15]], %{{.*}} : i32, !llvm.ptr
 
 // AA:              %[[VAL_18:.*]] = llvm.load %[[ARG0]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "dummy arg data/_QFtestEnum", members = 
{<#llvm.tbaa_type_desc<id = "dummy arg data", members = 
{<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, access_type = <id = 
"dummy arg data/_QFtestEnum", members = {<#llvm.tbaa_type_desc<id = "dummy arg 
data", members = {<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, offset = 0>]} : 
!llvm.ptr -> i32
 // NOAA:            %[[VAL_18:.*]] = llvm.load %[[ARG0]] : !llvm.ptr -> i32
 
-// AA:              %[[VAL_19:.*]] = llvm.load %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, access_type = <id = 
"allocated data/_QFtestEi", members = {<#llvm.tbaa_type_desc<id = "allocated 
data", members = {<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, offset = 0>]} : 
!llvm.ptr -> i32
+// AA:              %[[VAL_19:.*]] = llvm.load %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, access_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, offset = 0>]} : !llvm.ptr -> i32
 // NOAA:            %[[VAL_19:.*]] = llvm.load %{{.*}} : !llvm.ptr -> i32
 
 // CHECK:           %[[VAL_20:.*]] = llvm.add %[[VAL_18]], %[[VAL_19]] : i32
@@ -92,7 +92,7 @@ func.func @_QPtest(%arg0: !fir.ref<i32> {fir.bindc_name = 
"num"}, %arg1: !fir.re
 
 // CHECK:           %[[VAL_21:.*]] = llvm.trunc %[[VAL_10]] : i64 to i32
 
-// AA:              %[[VAL_22:.*]] = llvm.load %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, access_type = <id = 
"allocated data/_QFtestEi", members = {<#llvm.tbaa_type_desc<id = "allocated 
data", members = {<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, offset = 0>]} : 
!llvm.ptr -> i32
+// AA:              %[[VAL_22:.*]] = llvm.load %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, access_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, offset = 0>]} : !llvm.ptr -> i32
 // NOAA:            %[[VAL_22:.*]] = llvm.load %{{.*}} : !llvm.ptr -> i32
 
 // CHECK:           %[[VAL_23:.*]] = llvm.add %[[VAL_22]], %[[VAL_21]] 
overflow<nsw> : i32
@@ -100,7 +100,7 @@ func.func @_QPtest(%arg0: !fir.ref<i32> {fir.bindc_name = 
"num"}, %arg1: !fir.re
 // CHECK:           llvm.br ^bb1(%[[VAL_23]], %[[VAL_24]] : i32, i64)
 // CHECK:         ^bb3:
 
-// AA:              llvm.store %[[VAL_15]], %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, access_type = <id = 
"allocated data/_QFtestEi", members = {<#llvm.tbaa_type_desc<id = "allocated 
data", members = {<#llvm.tbaa_type_desc<id = "any data access", members = 
{<#llvm.tbaa_type_desc<id = "any access", members = {<#llvm.tbaa_root<id = 
"Flang function root _QPtest">, 0>}>, 0>}>, 0>}>, 0>}>, offset = 0>]} : i32, 
!llvm.ptr
+// AA:              llvm.store %[[VAL_15]], %[[VAL_1]] {tbaa = 
[#llvm.tbaa_tag<base_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, access_type = <id = "allocated data/_QFtestEi", members = 
{<#llvm.tbaa_type_desc<id = "allocated data", members = 
{<#llvm.tbaa_type_desc<id = "target data", members = {<#llvm.tbaa_type_desc<id 
= "any data access", members = {<#llvm.tbaa_type_desc<id = "any access", 
members = {<#llvm.tbaa_root<id = "Flang function root _QPtest">, 0>}>, 0>}>, 
0>}>, 0>}>, 0>}>, offset = 0>]} : i32, !llvm.ptr
 // NOAA:            llvm.store %[[VAL_15]], %{{.*}} : i32, !llvm.ptr
 
 // CHECK:           llvm.return

diff  --git a/flang/test/Fir/tbaa-codegen2.fir 
b/flang/test/Fir/tbaa-codegen2.fir
index 071d3ec89394c..4907aa03ec5a5 100644
--- a/flang/test/Fir/tbaa-codegen2.fir
+++ b/flang/test/Fir/tbaa-codegen2.fir
@@ -114,3 +114,4 @@ module attributes {fir.defaultkind = "a1c4d8i4l4r4", 
fir.kindmap = "", llvm.targ
 // CHECK: ![[TMP_DATA_ACCESS_TAG]] = !{![[TMP_DATA_ACCESS_TYPE:.*]], 
![[TMP_DATA_ACCESS_TYPE]], i64 0}
 // CHECK: ![[TMP_DATA_ACCESS_TYPE]] = !{!"allocated data/", 
![[TMP_ACCESS_TYPE:.*]], i64 0}
 // CHECK: ![[TMP_ACCESS_TYPE]] = !{!"allocated data", 
![[TARGET_ACCESS_TAG:.*]], i64 0}
+// CHECK: ![[TARGET_ACCESS_TAG]] = !{!"target data", ![[DATA_ACCESS_TYPE]], 
i64 0}

diff  --git a/flang/test/Transforms/tbaa-for-common-vars.fir 
b/flang/test/Transforms/tbaa-for-common-vars.fir
index 087e6938f8acb..a8dd86bff72ed 100644
--- a/flang/test/Transforms/tbaa-for-common-vars.fir
+++ b/flang/test/Transforms/tbaa-for-common-vars.fir
@@ -28,7 +28,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[$ATTR_0:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest1">
 // CHECK: #[[$ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_0]], 0>}>
 // CHECK: #[[$ATTR_2:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_1]], 0>}>
-// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "target data", members = 
{<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ATTR_3]], 0>}>
 // CHECK: #[[$ATTR_5:.+]] = #llvm.tbaa_type_desc<id = "global data/common1_", 
members = {<#[[$ATTR_4]], 0>}>
 // CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common1_/bytes_4_to_7", members = {<#[[$ATTR_5]], 0>}>
 // CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common1_/bytes_0_to_3", members = {<#[[$ATTR_5]], 0>}>
@@ -65,7 +66,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[$ATTR_10:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest2">
 // CHECK: #[[$ATTR_11:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_10]], 0>}>
 // CHECK: #[[$ATTR_12:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_11]], 0>}>
-// CHECK: #[[$ATTR_14:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$ATTR_12]], 0>}>
+// CHECK: #[[$ATTR_13:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[$ATTR_12]], 0>}>
+// CHECK: #[[$ATTR_14:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$ATTR_13]], 0>}>
 // CHECK: #[[$ATTR_15:.+]] = #llvm.tbaa_type_desc<id = "global data/common2_", 
members = {<#[[$ATTR_14]], 0>}>
 // CHECK: #[[$ATTR_16:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common2_/bytes_0_to_3", members = {<#[[$ATTR_15]], 0>}>
 // CHECK: #[[$ATTR_18:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_16]], 
access_type = #[[$ATTR_16]], offset = 0>
@@ -116,13 +118,14 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr 
= dense<64> : vector<4
 // CHECK: #[[ANYACC3INNER:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[ROOT3INNER]], 0>}>
 // CHECK: #[[ANYDATA3:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANYACC3]], 0>}>
 // CHECK: #[[ANYDATA3INNER:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANYACC3INNER]], 0>}>
-// CHECK: #[[GLOBALDATA3:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[ANYDATA3]], 0>}>
+// CHECK: #[[TARGETDATA3:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[ANYDATA3]], 0>}>
 // CHECK: #[[DUMMYARG3INNER:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[ANYDATA3INNER]], 0>}>
-// CHECK: #[[GLOBALDATA3COMMON3:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common3_", members = {<#[[GLOBALDATA3]], 0>}>
+// CHECK: #[[GLOBALDATA3:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TARGETDATA3]], 0>}>
 // CHECK: #[[DUMMYD:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest3FinnerEd", members = {<#[[DUMMYARG3INNER]], 0>}>
 // CHECK: #[[DUMMYC:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest3FinnerEc", members = {<#[[DUMMYARG3INNER]], 0>}>
 // CHECK: #[[DUMMYDTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYD]], 
access_type = #[[DUMMYD]], offset = 0>
 // CHECK: #[[DUMMYCTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYC]], 
access_type = #[[DUMMYC]], offset = 0>
+// CHECK: #[[GLOBALDATA3COMMON3:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common3_", members = {<#[[GLOBALDATA3]], 0>}>
 // CHECK: #[[GLOBALB:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common3_/bytes_4_to_7", members = {<#[[GLOBALDATA3COMMON3]], 0>}>
 // CHECK: #[[GLOBALA:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common3_/bytes_0_to_3", members = {<#[[GLOBALDATA3COMMON3]], 0>}>
 // CHECK: #[[GLOBALBTAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOBALB]], 
access_type = #[[GLOBALB]], offset = 0>
@@ -177,8 +180,10 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr 
= dense<64> : vector<4
 // CHECK: #[[INNER4ANYACC:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[INNER4ROOT]], 0>}>
 // CHECK: #[[TEST4ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[TEST4ANYCC]], 0>}>
 // CHECK: #[[INNER4ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[INNER4ANYACC]], 0>}>
-// CHECK: #[[TEST4GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TEST4ANYDATA]], 0>}>
-// CHECK: #[[INNER4GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[INNER4ANYDATA]], 0>}>
+// CHECK: #[[TEST4TARGET:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[TEST4ANYDATA]], 0>}>
+// CHECK: #[[INNER4TARGET:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[INNER4ANYDATA]], 0>}>
+// CHECK: #[[TEST4GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TEST4TARGET]], 0>}>
+// CHECK: #[[INNER4GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[INNER4TARGET]], 0>}>
 // CHECK: #[[TEST4COMMON:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common4_", members = {<#[[TEST4GLOBAL]], 0>}>
 // CHECK: #[[INNER4COMMON:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common4_", members = {<#[[INNER4GLOBAL]], 0>}>
 // CHECK: #[[TEST4B:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common4_/bytes_4_to_7", members = {<#[[TEST4COMMON]], 0>}>
@@ -224,7 +229,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[TEST5ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest5">
 // CHECK: #[[TEST5ANYACC:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[TEST5ROOT]], 0>}>
 // CHECK: #[[TEST5ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[TEST5ANYACC]], 0>}>
-// CHECK: #[[TEST5GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TEST5ANYDATA]], 0>}>
+// CHECK: #[[TEST5TARGET:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[TEST5ANYDATA]], 0>}>
+// CHECK: #[[TEST5GLOBAL:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TEST5TARGET]], 0>}>
 // CHECK: #[[TEST5COMMON5:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common5_", members = {<#[[TEST5GLOBAL]], 0>}>
 // CHECK: #[[TEST5COMMON5TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[TEST5COMMON5]], access_type = #[[TEST5COMMON5]], offset = 0>
 // CHECK: #[[TEST5A:.+]] = #llvm.tbaa_type_desc<id = "global 
data/common5_/bytes_0_to_3", members = {<#[[TEST5COMMON5]], 0>}>
@@ -282,7 +288,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[$ATTR_0:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest6">
 // CHECK: #[[$ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_0]], 0>}>
 // CHECK: #[[$ATTR_2:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_1]], 0>}>
-// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "target data", members = 
{<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ATTR_3]], 0>}>
 // CHECK: #[[$ATTR_5:.+]] = #llvm.tbaa_type_desc<id = "global data/block_", 
members = {<#[[$ATTR_4]], 0>}>
 // CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "global 
data/block_/bytes_0_to_79", members = {<#[[$ATTR_5]], 0>}>
 // CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_6]], 
access_type = #[[$ATTR_6]], offset = 0>
@@ -347,8 +354,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[$ATTR_74:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_73]], 0>}>
 // CHECK: #[[$ATTR_75:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_74]], 0>}>
 // CHECK: #[[$ATTR_76:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[$ATTR_75]], 0>}>
-// CHECK: #[[$ATTR_78:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$ATTR_75]], 0>}>
 // CHECK: #[[$ATTR_77:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_76]], 
access_type = #[[$ATTR_76]], offset = 0>
+// CHECK: #[[$ATTR_78:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$ATTR_76]], 0>}>
 // CHECK: #[[$ATTR_79:.+]] = #llvm.tbaa_type_desc<id = "global data/block_", 
members = {<#[[$ATTR_78]], 0>}>
 // CHECK: #[[$ATTR_80:.+]] = #llvm.tbaa_type_desc<id = "global 
data/block_/bytes_40_to_43", members = {<#[[$ATTR_79]], 0>}>
 // CHECK: #[[$ATTR_81:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_80]], 
access_type = #[[$ATTR_80]], offset = 0>
@@ -418,10 +425,10 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr 
= dense<64> : vector<4
 // CHECK: #[[$ATTR_82:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest8">
 // CHECK: #[[$ATTR_83:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_82]], 0>}>
 // CHECK: #[[$ATTR_84:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_83]], 0>}>
-// CHECK: #[[$ATTR_87:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$ATTR_84]], 0>}>
 // CHECK: #[[$ATTR_85:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[$ATTR_84]], 0>}>
-// CHECK: #[[$ATTR_88:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_87]], 
access_type = #[[$ATTR_87]], offset = 0>
 // CHECK: #[[$ATTR_86:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_85]], 
access_type = #[[$ATTR_85]], offset = 0>
+// CHECK: #[[$ATTR_87:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$ATTR_85]], 0>}>
+// CHECK: #[[$ATTR_88:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_87]], 
access_type = #[[$ATTR_87]], offset = 0>
 // CHECK-LABEL:   func.func @_QPtest8() {
 // CHECK:           fir.load %{{[0-9]+}} : !fir.ref<!fir.box<!fir.ptr<f32>>>
 // CHECK:           fir.load %{{[0-9]+}} {tbaa = [#[[$ATTR_86]]]} : 
!fir.ptr<f32>

diff  --git a/flang/test/Transforms/tbaa-for-global-equiv-vars.fir 
b/flang/test/Transforms/tbaa-for-global-equiv-vars.fir
index 0d082c7504024..dbefa3f8e3f5f 100644
--- a/flang/test/Transforms/tbaa-for-global-equiv-vars.fir
+++ b/flang/test/Transforms/tbaa-for-global-equiv-vars.fir
@@ -30,7 +30,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[ROOT1:.+]] = #llvm.tbaa_root<id = "Flang function root _QPtest1">
 // CHECK: #[[ANYACC1:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT1]], 0>}>
 // CHECK: #[[ANYDATA1:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANYACC1]], 0>}>
-// CHECK: #[[GLOBALDATA1:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[ANYDATA1]], 0>}>
+// CHECK: #[[TARGETDATA1:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[ANYDATA1]], 0>}>
+// CHECK: #[[GLOBALDATA1:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TARGETDATA1]], 0>}>
 // CHECK: #[[GLOB1COMMON:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMdata1Eglob1", members = {<#[[GLOBALDATA1]], 0>}>
 // CHECK: #[[GLOB1:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMdata1Eglob1/bytes_0_to_3", members = {<#[[GLOB1COMMON]], 0>}>
 // CHECK: #[[TAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOB1]], access_type = 
#[[GLOB1]], offset = 0>
@@ -73,7 +74,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[ROOT2:.+]] = #llvm.tbaa_root<id = "Flang function root _QPtest2">
 // CHECK: #[[ANYACC2:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT2]], 0>}>
 // CHECK: #[[ANYDATA2:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANYACC2]], 0>}>
-// CHECK: #[[GLOBALDATA2:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[ANYDATA2]], 0>}>
+// CHECK: #[[TARGETDATA2:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[ANYDATA2]], 0>}>
+// CHECK: #[[GLOBALDATA2:.+]] = #llvm.tbaa_type_desc<id = "global data", 
members = {<#[[TARGETDATA2]], 0>}>
 // CHECK: #[[GLOB1COMMON:.+]] = #llvm.tbaa_type_desc<id = "global 
data/glob1_", members = {<#[[GLOBALDATA2]], 0>}>
 // CHECK: #[[GLOB1GLOB2:.+]] = #llvm.tbaa_type_desc<id = "global 
data/glob1_/bytes_0_to_3", members = {<#[[GLOB1COMMON]], 0>}>
 // CHECK: #[[GLOB3:.+]] = #llvm.tbaa_type_desc<id = "global 
data/glob1_/bytes_4_to_7", members = {<#[[GLOB1COMMON]], 0>}>

diff  --git a/flang/test/Transforms/tbaa-for-local-vars.fir 
b/flang/test/Transforms/tbaa-for-local-vars.fir
index fde5c400c75ed..4eb6b2ecf31c4 100644
--- a/flang/test/Transforms/tbaa-for-local-vars.fir
+++ b/flang/test/Transforms/tbaa-for-local-vars.fir
@@ -35,22 +35,18 @@
 // scope's TBAA tree.
 // RUN: fir-opt --fir-add-alias-tags %s | FileCheck %s
 
-// CHECK: #[[$SCOPE_2:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMmPtest - Scope 2">
-// CHECK: #[[$SCOPE_1:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMmPtest">
-// CHECK: #[[$ANY_ACCESS2:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[$SCOPE_2]], 0>}>
-// CHECK: #[[$ANY_ACCESS1:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[$SCOPE_1]], 0>}>
-// CHECK: #[[$ANY_DATA2:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ANY_ACCESS2]], 0>}>
-// CHECK: #[[$ANY_DATA1:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ANY_ACCESS1]], 0>}>
-// CHECK: #[[$DUMMY_ARG2:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ANY_DATA2]], 0>}>
-// CHECK: #[[$ALLOCATED_DATA1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data", members = {<#[[$ANY_DATA1]], 0>}>
-// CHECK: #[[$DUMMY_ARG1:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ANY_DATA1]], 0>}>
-// CHECK: #[[$ALLOCATED_DATA1_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[$ALLOCATED_DATA1]], access_type = #[[$ALLOCATED_DATA1]], offset = 0>
-// CHECK: #[[$BAR_THIS2:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmFbarEthis", members = {<#[[$DUMMY_ARG2]], 0>}>
-// CHECK: #[[$TEST_VAR1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QMmFtestEvar", members = {<#[[$ALLOCATED_DATA1]], 0>}>
-// CHECK: #[[$TEST_ARG1:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmFtestEarg", members = {<#[[$DUMMY_ARG1]], 0>}>
-// CHECK: #[[$BAR_THIS2_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[$BAR_THIS2]], 
access_type = #[[$BAR_THIS2]], offset = 0>
-// CHECK: #[[$TEST_VAR1_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[$TEST_VAR1]], 
access_type = #[[$TEST_VAR1]], offset = 0>
-// CHECK: #[[$TEST_ARG2_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[$TEST_ARG1]], 
access_type = #[[$TEST_ARG1]], offset = 0>
+// CHECK: #[[$ATTR_0:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMmPtest - Scope 2">
+// CHECK: #[[$ATTR_1:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMmPtest">
+// CHECK: #[[$ATTR_2:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_0]], 0>}>
+// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_1]], 0>}>
+// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_5:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_3]], 0>}>
+// CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_4]], 0>}>
+// CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_type_desc<id = "target data", members = 
{<#[[$ATTR_5]], 0>}>
+// CHECK: #[[$ATTR_9:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmFbarEthis", members = {<#[[$ATTR_6]], 0>}>
+// CHECK: #[[$ATTR_10:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$ATTR_7]], 0>}>
+// CHECK: #[[$ATTR_12:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_9]], 
access_type = #[[$ATTR_9]], offset = 0>
+// CHECK: #[[$ATTR_13:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_10]], 
access_type = #[[$ATTR_10]], offset = 0>
 
 // CHECK-LABEL:   func.func @_QMmPtest(
 // CHECK-SAME:      %[[ARG0:.*]]: !fir.ref<f32> {fir.bindc_name = "arg"}) {
@@ -65,10 +61,10 @@
 // CHECK:           %[[VAL_10:.*]] = fir.dummy_scope : !fir.dscope
 // CHECK:           %[[VAL_11:.*]] = fir.declare %[[VAL_9]] dummy_scope 
%[[VAL_10]] {fortran_attrs = #fir.var_attrs<intent_out>, uniq_name = 
"_QMmFbarEthis"} : (!fir.class<!fir.type<_QMmTt{x:f32}>>, !fir.dscope) -> 
!fir.class<!fir.type<_QMmTt{x:f32}>>
 // CHECK:           %[[VAL_12:.*]] = fir.coordinate_of %[[VAL_11]], x : 
(!fir.class<!fir.type<_QMmTt{x:f32}>>) -> !fir.ref<f32>
-// CHECK:           fir.store %[[VAL_0]] to %[[VAL_12]] {tbaa = 
[#[[$BAR_THIS2_TAG]]]} : !fir.ref<f32>
+// CHECK:           fir.store %[[VAL_0]] to %[[VAL_12]] {tbaa = 
[#[[$ATTR_12]]]} : !fir.ref<f32>
 // CHECK:           %[[VAL_13:.*]] = fir.declare %[[VAL_1]] {uniq_name = 
".tmp.func_result"} : (!fir.ref<!fir.type<_QMmTt{x:f32}>>) -> 
!fir.ref<!fir.type<_QMmTt{x:f32}>>
 // CHECK:           %[[VAL_14:.*]] = fir.coordinate_of %[[VAL_13]], x : 
(!fir.ref<!fir.type<_QMmTt{x:f32}>>) -> !fir.ref<f32>
-// CHECK:           %[[VAL_16:.*]] = fir.load %[[VAL_14]] {tbaa = 
[#[[$ALLOCATED_DATA1_TAG]]]} : !fir.ref<f32>
+// CHECK:           %[[VAL_16:.*]] = fir.load %[[VAL_14]] {tbaa = 
[#[[$ATTR_13]]]} : !fir.ref<f32>
 module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = dense<64> : 
vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, 
i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, i64 = 
dense<[32, 64]> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = 
dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" 
= "little">, llvm.data_layout = ""} {
 func.func @_QMmPtest(%arg0: !fir.ref<f32> {fir.bindc_name = "arg"}) {
   %cst = arith.constant 1.000000e+00 : f32

diff  --git a/flang/test/Transforms/tbaa-with-dummy-scope.fir 
b/flang/test/Transforms/tbaa-with-dummy-scope.fir
index d7f33776150ae..4ae2b8efe2581 100644
--- a/flang/test/Transforms/tbaa-with-dummy-scope.fir
+++ b/flang/test/Transforms/tbaa-with-dummy-scope.fir
@@ -24,7 +24,7 @@
 // CHECK: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[TEST1ANYDATA]], 0>}>
 // CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_4]], 0>}>
 // CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_5]], 0>}>
-// CHECK: #[[TARGETDATA_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[TARGETDATA]], 
access_type = #[[TARGETDATA]], offset = 0>
+// CHECK: #[[TARGETTAG:.+]] = #llvm.tbaa_tag<base_type = #[[TARGETDATA]], 
access_type = #[[TARGETDATA]], offset = 0>
 // CHECK: #[[$ATTR_8:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtestFinnerEy", members = {<#[[$ATTR_6]], 0>}>
 // CHECK: #[[$ATTR_9:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtestFinnerEx", members = {<#[[$ATTR_6]], 0>}>
 // CHECK: #[[$ATTR_10:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtestFinnerEy", members = {<#[[$ATTR_7]], 0>}>
@@ -34,8 +34,8 @@
 // CHECK: #[[$ATTR_14:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_10]], 
access_type = #[[$ATTR_10]], offset = 0>
 // CHECK: #[[$ATTR_15:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_11]], 
access_type = #[[$ATTR_11]], offset = 0>
 // CHECK:   func.func @test1(
-// CHECK:           %[[VAL_5:.*]] = fir.load %{{.*}} {tbaa = 
[#[[TARGETDATA_TAG]]]} : !fir.ref<f32>
-// CHECK:           fir.store %{{.*}} {tbaa = [#[[TARGETDATA_TAG]]]} : 
!fir.ref<f32>
+// CHECK:           %[[VAL_5:.*]] = fir.load %{{.*}} {tbaa = [#[[TARGETTAG]]]} 
: !fir.ref<f32>
+// CHECK:           fir.store %{{.*}} {tbaa = [#[[TARGETTAG]]]} : !fir.ref<f32>
 // CHECK:           %[[VAL_6:.*]] = fir.dummy_scope : !fir.dscope
 // CHECK:           %[[VAL_9:.*]] = fir.load %{{.*}} {tbaa = [#[[$ATTR_12]]]} 
: !fir.ref<f32>
 // CHECK:           fir.store %{{.*}} {tbaa = [#[[$ATTR_13]]]} : !fir.ref<f32>
@@ -83,21 +83,23 @@ func.func @test1(%arg0: !fir.ref<f32> {fir.bindc_name = 
"x", fir.target}, %arg1:
 // CHECK: #[[$ATTR_33:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMtestPcaller - Scope 1">
 // CHECK: #[[$ATTR_34:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_32]], 0>}>
 // CHECK: #[[$ATTR_35:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_33]], 0>}>
-// CHECK: #[[$CALLERANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data 
access", members = {<#[[$ATTR_34]], 0>}>
-// CHECK: #[[$CALLEEANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data 
access", members = {<#[[$ATTR_35]], 0>}>
-// CHECK: #[[$ATTR_38:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$CALLERANYDATA]], 0>}>
-// CHECK: #[[$ATTR_39:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[$CALLEEANYDATA]], 0>}>
-// CHECK: #[[$ATTR_40:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$CALLEEANYDATA]], 0>}>
+// CHECK: #[[$ATTR_36:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_34]], 0>}>
+// CHECK: #[[$ATTR_37:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_35]], 0>}>
+// CHECK: #[[CALLERTARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[$ATTR_36]], 0>}>
+// CHECK: #[[CALLEETARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[$ATTR_37]], 0>}>
+// CHECK: #[[$ATTR_40:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_37]], 0>}>
+// CHECK: #[[$ATTR_38:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[CALLERTARGETDATA]], 0>}>
+// CHECK: #[[$ATTR_39:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[CALLEETARGETDATA]], 0>}>
+// CHECK: #[[$ATTR_45:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMtestFcalleeEz", members = {<#[[$ATTR_40]], 0>}>
+// CHECK: #[[$ATTR_50:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_45]], 
access_type = #[[$ATTR_45]], offset = 0>
 // CHECK: #[[$ATTR_41:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMtestEy", members = {<#[[$ATTR_38]], 0>}>
 // CHECK: #[[$ATTR_42:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMtestEx", members = {<#[[$ATTR_38]], 0>}>
 // CHECK: #[[$ATTR_43:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMtestEy", members = {<#[[$ATTR_39]], 0>}>
 // CHECK: #[[$ATTR_44:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMtestEx", members = {<#[[$ATTR_39]], 0>}>
-// CHECK: #[[$ATTR_45:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMtestFcalleeEz", members = {<#[[$ATTR_40]], 0>}>
 // CHECK: #[[$ATTR_46:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_41]], 
access_type = #[[$ATTR_41]], offset = 0>
 // CHECK: #[[$ATTR_47:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_42]], 
access_type = #[[$ATTR_42]], offset = 0>
 // CHECK: #[[$ATTR_48:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_43]], 
access_type = #[[$ATTR_43]], offset = 0>
 // CHECK: #[[$ATTR_49:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_44]], 
access_type = #[[$ATTR_44]], offset = 0>
-// CHECK: #[[$ATTR_50:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_45]], 
access_type = #[[$ATTR_45]], offset = 0>
 // CHECK:   func.func @_QMtestPcaller(
 // CHECK-SAME:                              %[[VAL_0:.*]]: !fir.ref<f32> 
{fir.bindc_name = "z"}) {
 // CHECK:           %[[VAL_1:.*]] = fir.dummy_scope : !fir.dscope

diff  --git a/flang/test/Transforms/tbaa-with-dummy-scope2.fir 
b/flang/test/Transforms/tbaa-with-dummy-scope2.fir
index 6f5ed69fbc9c6..54902ca7d41e1 100644
--- a/flang/test/Transforms/tbaa-with-dummy-scope2.fir
+++ b/flang/test/Transforms/tbaa-with-dummy-scope2.fir
@@ -44,15 +44,16 @@ func.func @_QPtest1() attributes {noinline} {
 }
 // CHECK: #[[$ATTR_0:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest1">
 // CHECK: #[[$ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_0]], 0>}>
-// CHECK: #[[$ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_1]], 0>}>
-// CHECK: #[[$LOCAL_ATTR_0:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$ANYDATA]], 0>}>
-// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ANYDATA]], 0>}>
-// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ANYDATA]], 0>}>
-// CHECK: #[[$LOCAL_ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1FinnerEy", members = {<#[[$LOCAL_ATTR_0]], 0>}>
+// CHECK: #[[$ATTR_2:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_1]], 0>}>
+// CHECK: #[[$TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$LOCAL_ATTR_0:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$TARGETDATA]], 0>}>
 // CHECK: #[[$ATTR_5:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest1FinnerEx", members = {<#[[$ATTR_3]], 0>}>
+// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$TARGETDATA]], 0>}>
+// CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_5]], 
access_type = #[[$ATTR_5]], offset = 0>
+// CHECK: #[[$LOCAL_ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1FinnerEy", members = {<#[[$LOCAL_ATTR_0]], 0>}>
 // CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "global data/_QMmEglob", 
members = {<#[[$ATTR_4]], 0>}>
 // CHECK: #[[$LOCAL_ATTR_2:.+]] = #llvm.tbaa_tag<base_type = 
#[[$LOCAL_ATTR_1]], access_type = #[[$LOCAL_ATTR_1]], offset = 0>
-// CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_5]], 
access_type = #[[$ATTR_5]], offset = 0>
 // CHECK: #[[$ATTR_8:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_6]], 
access_type = #[[$ATTR_6]], offset = 0>
 // CHECK-LABEL:   func.func @_QPtest1() attributes {noinline} {
 // CHECK:           %[[VAL_2:.*]] = fir.alloca i32 {bindc_name = "y", 
uniq_name = "_QFtest1FinnerEy"}
@@ -89,18 +90,19 @@ func.func @_QPtest2() attributes {noinline} {
 }
 // CHECK: #[[$ATTR_0:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest2">
 // CHECK: #[[$ATTR_1:.+]] = #llvm.tbaa_root<id = "Flang function root _QPtest2 
- Scope 1">
-// CHECK: #[[$ANY_ACCESS_0:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[$ATTR_0]], 0>}>
-// CHECK: #[[$ANY_ACCESS_1:.+]] = #llvm.tbaa_type_desc<id = "any access", 
members = {<#[[$ATTR_1]], 0>}>
-// CHECK: #[[$ANY_DATA_0:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ANY_ACCESS_0]], 0>}>
-// CHECK: #[[$ANY_DATA_1:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ANY_ACCESS_1]], 0>}>
-// CHECK: #[[$LOCAL_ATTR_0:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$ANY_DATA_0]], 0>}>
-// CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ANY_DATA_1]], 0>}>
-// CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$ANY_DATA_0]], 0>}>
-// CHECK: #[[$LOCAL_ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest2FinnerEy", members = {<#[[$LOCAL_ATTR_0]], 0>}>
+// CHECK: #[[$ATTR_2:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_0]], 0>}>
+// CHECK: #[[$ATTR_3:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[$ATTR_1]], 0>}>
+// CHECK: #[[$ATTR_4:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_2]], 0>}>
+// CHECK: #[[$ATTR_5:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[$ATTR_3]], 0>}>
+// CHECK: #[[$TARGETDATA_0:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[$ATTR_4]], 0>}>
+// CHECK: #[[$ATTR_6:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[$ATTR_5]], 0>}>
+// CHECK: #[[$LOCAL_ATTR_0:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[$TARGETDATA_0]], 0>}>
 // CHECK: #[[$ATTR_8:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest2FinnerEx", members = {<#[[$ATTR_6]], 0>}>
+// CHECK: #[[$ATTR_7:.+]] = #llvm.tbaa_type_desc<id = "global data", members = 
{<#[[$TARGETDATA_0]], 0>}>
+// CHECK: #[[$ATTR_10:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_8]], 
access_type = #[[$ATTR_8]], offset = 0>
+// CHECK: #[[$LOCAL_ATTR_1:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest2FinnerEy", members = {<#[[$LOCAL_ATTR_0]], 0>}>
 // CHECK: #[[$ATTR_9:.+]] = #llvm.tbaa_type_desc<id = "global data/_QMmEglob", 
members = {<#[[$ATTR_7]], 0>}>
 // CHECK: #[[$LOCAL_ATTR_2:.+]] = #llvm.tbaa_tag<base_type = 
#[[$LOCAL_ATTR_1]], access_type = #[[$LOCAL_ATTR_1]], offset = 0>
-// CHECK: #[[$ATTR_10:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_8]], 
access_type = #[[$ATTR_8]], offset = 0>
 // CHECK: #[[$ATTR_11:.+]] = #llvm.tbaa_tag<base_type = #[[$ATTR_9]], 
access_type = #[[$ATTR_9]], offset = 0>
 // CHECK-LABEL:   func.func @_QPtest2() attributes {noinline} {
 // CHECK:           %[[VAL_2:.*]] = fir.alloca i32 {bindc_name = "y", 
uniq_name = "_QFtest2FinnerEy"}

diff  --git a/flang/test/Transforms/tbaa2.fir b/flang/test/Transforms/tbaa2.fir
index 9b5307ba69d17..a594e6b32fdac 100644
--- a/flang/test/Transforms/tbaa2.fir
+++ b/flang/test/Transforms/tbaa2.fir
@@ -48,10 +48,18 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QMmodPcallee">
 // CHECK: #[[ANY_ACCESS:.+]] = #llvm.tbaa_type_desc<id = "any access", members 
= {<#[[ROOT]], 0>}>
 // CHECK: #[[ANY_DATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANY_ACCESS]], 0>}>
-// CHECK: #[[ANY_GLBL:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[ANY_DATA]], 0>}>
-// CHECK: #[[ANY_LOCAL:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[ANY_DATA]], 0>}>
+// CHECK: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[ANY_DATA]], 0>}>
 // CHECK: #[[ANY_ARG:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[ANY_DATA]], 0>}>
-// CHECK: #[[ANY_DIRECT:.+]] = #llvm.tbaa_type_desc<id = "direct data", 
members = {<#[[ANY_DATA]], 0>}>
+// CHECK: #[[ANY_GLBL:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[TARGETDATA]], 0>}>
+// CHECK: #[[ANY_LOCAL:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[TARGETDATA]], 0>}>
+// CHECK: #[[ARG_LOW:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeElow", members = {<#[[ANY_ARG]], 0>}>
+// CHECK: #[[ANY_DIRECT:.+]] = #llvm.tbaa_type_desc<id = "direct data", 
members = {<#[[TARGETDATA]], 0>}>
+// CHECK: #[[ARG_Z:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeEz", members = {<#[[ANY_ARG]], 0>}>
+// CHECK: #[[ARG_Y:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeEy", members = {<#[[ANY_ARG]], 0>}>
+
+// CHECK: #[[ARG_LOW_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_LOW]], 
access_type = #[[ARG_LOW]], offset = 0>
+// CHECK: #[[ARG_Z_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_Z]], 
access_type = #[[ARG_Z]], offset = 0>
+// CHECK: #[[ARG_Y_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_Y]], 
access_type = #[[ARG_Y]], offset = 0>
 
 // CHECK: #[[GLBL_ZSTART:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMmodEzstart", members = {<#[[ANY_GLBL]], 0>}>
 // CHECK: #[[GLBL_ZSTOP:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMmodEzstop", members = {<#[[ANY_GLBL]], 0>}>
@@ -61,13 +69,10 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[LOCAL2_ALLOC:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QMmodFcalleeEj", members = {<#[[ANY_LOCAL]], 0>}>
 // CHECK: #[[GLBL_XSTART:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMmodExstart", members = {<#[[ANY_GLBL]], 0>}>
 // CHECK: #[[LOCAL3_ALLOC:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QMmodFcalleeEi", members = {<#[[ANY_LOCAL]], 0>}>
-// CHECK: #[[ARG_LOW:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeElow", members = {<#[[ANY_ARG]], 0>}>
 // CHECK: #[[LOCAL4_ALLOC:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QMmodFcalleeEdxold", members = {<#[[ANY_LOCAL]], 0>}>
 // CHECK: #[[DIRECT_A:.+]] = #llvm.tbaa_type_desc<id = "direct data/_QMmodEa", 
members = {<#[[ANY_DIRECT]], 0>}>
 // CHECK: #[[DIRECT_B:.+]] = #llvm.tbaa_type_desc<id = "direct data/_QMmodEb", 
members = {<#[[ANY_DIRECT]], 0>}>
-// CHECK: #[[ARG_Z:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeEz", members = {<#[[ANY_ARG]], 0>}>
 // CHECK: #[[GLBL_DYINV:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMmodEdyinv", members = {<#[[ANY_GLBL]], 0>}>
-// CHECK: #[[ARG_Y:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QMmodFcalleeEy", members = {<#[[ANY_ARG]], 0>}>
 // CHECK: #[[LOCAL5_ALLOC:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QMmodFcalleeEdzinv", members = {<#[[ANY_LOCAL]], 0>}>
 
 // CHECK: #[[GLBL_ZSTART_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[GLBL_ZSTART]], access_type = #[[GLBL_ZSTART]], offset = 0>
@@ -78,13 +83,10 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // CHECK: #[[LOCAL2_ALLOC_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[LOCAL2_ALLOC]], access_type = #[[LOCAL2_ALLOC]], offset = 0>
 // CHECK: #[[GLBL_XSTART_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[GLBL_XSTART]], access_type = #[[GLBL_XSTART]], offset = 0>
 // CHECK: #[[LOCAL3_ALLOC_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[LOCAL3_ALLOC]], access_type = #[[LOCAL3_ALLOC]], offset = 0>
-// CHECK: #[[ARG_LOW_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_LOW]], 
access_type = #[[ARG_LOW]], offset = 0>
 // CHECK: #[[LOCAL4_ALLOC_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[LOCAL4_ALLOC]], access_type = #[[LOCAL4_ALLOC]], offset = 0>
 // CHECK: #[[DIRECT_A_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[DIRECT_A]], 
access_type = #[[DIRECT_A]], offset = 0>
 // CHECK: #[[DIRECT_B_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[DIRECT_B]], 
access_type = #[[DIRECT_B]], offset = 0>
-// CHECK: #[[ARG_Z_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_Z]], 
access_type = #[[ARG_Z]], offset = 0>
 // CHECK: #[[GLBL_DYINV_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLBL_DYINV]], 
access_type = #[[GLBL_DYINV]], offset = 0>
-// CHECK: #[[ARG_Y_TAG:.+]] = #llvm.tbaa_tag<base_type = #[[ARG_Y]], 
access_type = #[[ARG_Y]], offset = 0>
 // CHECK: #[[LOCAL5_ALLOC_TAG:.+]] = #llvm.tbaa_tag<base_type = 
#[[LOCAL5_ALLOC]], access_type = #[[LOCAL5_ALLOC]], offset = 0>
 
   func.func @_QMmodPcallee(%arg0: !fir.box<!fir.array<?x?x?xf32>> 
{fir.bindc_name = "z"}, %arg1: !fir.box<!fir.array<?x?x?xf32>> {fir.bindc_name 
= "y"}, %arg2: !fir.ref<!fir.box<!fir.heap<!fir.array<?x?x?xf32>>>> 
{fir.bindc_name = "low"}) {

diff  --git a/flang/test/Transforms/tbaa3.fir b/flang/test/Transforms/tbaa3.fir
index 7a9a819ea102a..abcb7e000bac1 100644
--- a/flang/test/Transforms/tbaa3.fir
+++ b/flang/test/Transforms/tbaa3.fir
@@ -1,4 +1,5 @@
-// RUN: fir-opt --fir-add-alias-tags %s | FileCheck --check-prefixes=ALL %s
+// RUN: fir-opt --fir-add-alias-tags %s | FileCheck 
--check-prefixes=ALL,DEFAULT %s
+// RUN: fir-opt --fir-add-alias-tags --local-alloc-tbaa %s | FileCheck 
--check-prefixes=ALL,LOCAL %s
 
 // Test AddAliasTagsPass creating sub-tree for TARGET/POINTER variables.
 
@@ -55,57 +56,56 @@
 //    |  |- "dummy arg data/_QFtest1Edummyas"
 //    |  |- "dummy arg data/_QFtest1Edummya"
 //    |
-//    |- "target data" <--- all pointers and target dummy arguments go here
-//    |  |- "target data/_QMdataEglobt"
-//    |  |- "target data/_QMdataEglobat"
-//    |  |- "target data/_QFtest1Elocalt"
-//    |  |- "target data/_QFtest1Elocalat"
-//    |
-//    |- "global data"
-//    |  |
-//    |  |- "global data/_QMdataEglob"
-//    |
-//    |- "direct data"
-//    |  |
-//    |  |- "direct data/_QMdataEgloba"
-//    |
-//    |- "allocated data"
+//    |- "target data" <- all pointers and taget dummys
 //       |
-//       |- "allocated data/_QFtest1Elocal"
-//       |- "allocated data/_QFtest1Elocala"
+//       |- "global data"
+//       |  |
+//       |  |- "global data/_QMdataEglob"
+//       |  |- "global data/_QMdataEglobt"
+//       |
+//       |- "direct data"
+//       |  |
+//       |  |- "direct data/_QMdataEgloba"
+//       |  |- "direct data/_QMdataEglobat"
+//       |
+//       |- "allocated data"
+//          |
+//          |- "allocated data/_QFtest1Elocal"
+//          |- "allocated data/_QFtest1Elocalt"
+//          |- "allocated data/_QFtest1Elocala"
+//          |- "allocated data/_QFtest1Elocalat"
 
 // ALL: #[[FUNCROOT:.+]] = #llvm.tbaa_root<id = "Flang function root _QPtest1">
 // ALL: #[[ANYACCESS:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[FUNCROOT]], 0>}>
 // ALL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", members 
= {<#[[ANYACCESS]], 0>}>
-// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[ANYDATA]], 0>}>
 // ALL: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[ANYDATA]], 0>}>
-// ALL: #[[DIRECTDATA:.+]] = #llvm.tbaa_type_desc<id = "direct data", members 
= {<#[[ANYDATA]], 0>}>
 // ALL: #[[DUMMYDATA:.+]] = #llvm.tbaa_type_desc<id = "dummy arg data", 
members = {<#[[ANYDATA]], 0>}>
-// ALL: #[[LOCALDATA:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[ANYDATA]], 0>}>
 // ALL: #[[TARGETTAG:.+]] = #llvm.tbaa_tag<base_type = #[[TARGETDATA]], 
access_type = #[[TARGETDATA]], offset = 0>
-// ALL: #[[GLOBVAR:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMdataEglob", members = {<#[[GLOBALDATA]], 0>}>
-// ALL: #[[GLOBTVAR:.+]] = #llvm.tbaa_type_desc<id = "target 
data/_QMdataEglobt", members = {<#[[TARGETDATA]], 0>}>
-// ALL: #[[GLOBAVAR:.+]] = #llvm.tbaa_type_desc<id = "direct 
data/_QMdataEgloba", members = {<#[[DIRECTDATA]], 0>}>
-// ALL: #[[GLOBATVAR:.+]] = #llvm.tbaa_type_desc<id = "target 
data/_QMdataEglobat", members = {<#[[TARGETDATA]], 0>}>
+// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[TARGETDATA]], 0>}>
+// ALL: #[[DIRECTDATA:.+]] = #llvm.tbaa_type_desc<id = "direct data", members 
= {<#[[TARGETDATA]], 0>}>
 // ALL: #[[DUMMYFVAR:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest1Edummyf", members = {<#[[DUMMYDATA]], 0>}>
 // ALL: #[[DUMMYASVAR:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest1Edummyas", members = {<#[[DUMMYDATA]], 0>}>
 // ALL: #[[DUMMYAVAR:.+]] = #llvm.tbaa_type_desc<id = "dummy arg 
data/_QFtest1Edummya", members = {<#[[DUMMYDATA]], 0>}>
-// ALL: #[[LOCALVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocal", members = {<#[[LOCALDATA]], 0>}>
-// ALL: #[[LOCALTVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocalt", members = {<#[[LOCALDATA]], 0>}>
-// ALL: #[[LOCALAVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocala", members = {<#[[LOCALDATA]], 0>}>
-// ALL: #[[LOCALATVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocalat", members = {<#[[LOCALDATA]], 0>}>
-
+// LOCAL: #[[LOCALDATA:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[TARGETDATA]], 0>}>
+// ALL: #[[DUMMYFTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYFVAR]], 
access_type = #[[DUMMYFVAR]], offset = 0>
+// ALL: #[[DUMMYASTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYASVAR]], 
access_type = #[[DUMMYASVAR]], offset = 0>
+// ALL: #[[DUMMYATAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYAVAR]], 
access_type = #[[DUMMYAVAR]], offset = 0>
+// ALL: #[[GLOBVAR:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMdataEglob", members = {<#[[GLOBALDATA]], 0>}>
+// ALL: #[[GLOBTVAR:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QMdataEglobt", members = {<#[[GLOBALDATA]], 0>}>
+// ALL: #[[GLOBAVAR:.+]] = #llvm.tbaa_type_desc<id = "direct 
data/_QMdataEgloba", members = {<#[[DIRECTDATA]], 0>}>
+// ALL: #[[GLOBATVAR:.+]] = #llvm.tbaa_type_desc<id = "direct 
data/_QMdataEglobat", members = {<#[[DIRECTDATA]], 0>}>
+// LOCAL: #[[LOCALVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocal", members = {<#[[LOCALDATA]], 0>}>
+// LOCAL: #[[LOCALTVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocalt", members = {<#[[LOCALDATA]], 0>}>
+// LOCAL: #[[LOCALAVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocala", members = {<#[[LOCALDATA]], 0>}>
+// LOCAL: #[[LOCALATVAR:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest1Elocalat", members = {<#[[LOCALDATA]], 0>}>
 // ALL: #[[GLOBTAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOBVAR]], access_type 
= #[[GLOBVAR]], offset = 0>
 // ALL: #[[GLOBTTAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOBTVAR]], 
access_type = #[[GLOBTVAR]], offset = 0>
 // ALL: #[[GLOBATAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOBAVAR]], 
access_type = #[[GLOBAVAR]], offset = 0>
 // ALL: #[[GLOBATTAG:.+]] = #llvm.tbaa_tag<base_type = #[[GLOBATVAR]], 
access_type = #[[GLOBATVAR]], offset = 0>
-// ALL: #[[DUMMYFTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYFVAR]], 
access_type = #[[DUMMYFVAR]], offset = 0>
-// ALL: #[[DUMMYASTAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYASVAR]], 
access_type = #[[DUMMYASVAR]], offset = 0>
-// ALL: #[[DUMMYATAG:.+]] = #llvm.tbaa_tag<base_type = #[[DUMMYAVAR]], 
access_type = #[[DUMMYAVAR]], offset = 0>
-// ALL: #[[LOCALTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALVAR]], 
access_type = #[[LOCALVAR]], offset = 0>
-// ALL: #[[LOCALTTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALTVAR]], 
access_type = #[[LOCALTVAR]], offset = 0>
-// ALL: #[[LOCALATAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALAVAR]], 
access_type = #[[LOCALAVAR]], offset = 0>
-// ALL: #[[LOCALATTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALATVAR]], 
access_type = #[[LOCALATVAR]], offset = 0>
+// LOCAL: #[[LOCALTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALVAR]], 
access_type = #[[LOCALVAR]], offset = 0>
+// LOCAL: #[[LOCALTTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALTVAR]], 
access_type = #[[LOCALTVAR]], offset = 0>
+// LOCAL: #[[LOCALATAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALAVAR]], 
access_type = #[[LOCALAVAR]], offset = 0>
+// LOCAL: #[[LOCALATTAG:.+]] = #llvm.tbaa_tag<base_type = #[[LOCALATVAR]], 
access_type = #[[LOCALATVAR]], offset = 0>
 
 module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = dense<64> : 
vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, 
i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, i64 = 
dense<[32, 64]> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = 
dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" 
= "little">, llvm.data_layout = ""} {
   fir.global @_QMdataEglob : !fir.array<10xf32> {
@@ -263,11 +263,13 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr 
= dense<64> : vector<4
     fir.store %cst to %67 : !fir.ref<f32>
     %68 = fir.array_coor %20(%5) %c1 : (!fir.ref<!fir.array<10xf32>>, 
!fir.shape<1>, index) -> !fir.ref<f32>
 // real :: local(10)
-// ALL: fir.store{{.*}}{tbaa = [#[[LOCALTAG]]]} : !fir.ref<f32>
+// DEFAULT: fir.store{{.*}}tbaa
+// LOCAL: fir.store{{.*}}{tbaa = [#[[LOCALTAG]]]} : !fir.ref<f32>
     fir.store %cst to %68 : !fir.ref<f32>
     %69 = fir.array_coor %33(%5) %c1 : (!fir.ref<!fir.array<10xf32>>, 
!fir.shape<1>, index) -> !fir.ref<f32>
 // real, target :: localt(10)
-// ALL: fir.store{{.*}}{tbaa = [#[[LOCALTTAG]]]} : !fir.ref<f32>
+// DEFAULT: fir.store{{.*}}tbaa
+// LOCAL: fir.store{{.*}}{tbaa = [#[[LOCALTTAG]]]} : !fir.ref<f32>
     fir.store %cst to %69 : !fir.ref<f32>
 // ALL-NOT: fir.load{{.*}}tbaa
     %70 = fir.load %25 : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
@@ -276,7 +278,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
     %73 = fir.shape_shift %72#0, %72#1 : (index, index) -> !fir.shapeshift<1>
     %74 = fir.array_coor %71(%73) %c1 : (!fir.heap<!fir.array<?xf32>>, 
!fir.shapeshift<1>, index) -> !fir.ref<f32>
 // real, allocatable :: locala(:)
-// ALL: fir.store{{.*}}{tbaa = [#[[LOCALATAG]]]} : !fir.ref<f32>
+// DEFAULT: fir.store{{.*}}tbaa
+// LOCAL: fir.store{{.*}}{tbaa = [#[[LOCALATAG]]]} : !fir.ref<f32>
     fir.store %cst to %74 : !fir.ref<f32>
 // ALL-NOT: fir.load{{.*}}tbaa
     %75 = fir.load %27 : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
@@ -285,7 +288,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
     %78 = fir.shape_shift %77#0, %77#1 : (index, index) -> !fir.shapeshift<1>
     %79 = fir.array_coor %76(%78) %c1 : (!fir.heap<!fir.array<?xf32>>, 
!fir.shapeshift<1>, index) -> !fir.ref<f32>
 // real, allocatable, target :: localat(:)
-// ALL: fir.store{{.*}}{tbaa = [#[[LOCALATTAG]]]} : !fir.ref<f32>
+// DEFAULT: fir.store{{.*}}tbaa
+// LOCAL: fir.store{{.*}}{tbaa = [#[[LOCALATTAG]]]} : !fir.ref<f32>
     fir.store %cst to %79 : !fir.ref<f32>
 // ALL-NOT: fir.load{{.*}}tbaa
     %80 = fir.load %31 : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
@@ -293,7 +297,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
     %82 = fir.shift %81#0 : (index) -> !fir.shift<1>
     %83 = fir.array_coor %80(%82) %c1 : 
(!fir.box<!fir.ptr<!fir.array<?xf32>>>, !fir.shift<1>, index) -> !fir.ref<f32>
 // real, pointer :: localp(:)
-// ALL: fir.store{{.*}}{tbaa = [#[[TARGETTAG]]]} : !fir.ref<f32>
+// DEFAULT: fir.store{{.*}}tbaa
+// LOCAL: fir.store{{.*}}{tbaa = [#[[TARGETTAG]]]} : !fir.ref<f32>
     fir.store %cst to %83 : !fir.ref<f32>
 // ALL-NOT: fir.load{{.*}}tbaa
     %84 = fir.load %27 : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>

diff  --git a/flang/test/Transforms/tbaa4.fir b/flang/test/Transforms/tbaa4.fir
index 5e29014af8935..c368a3d06c2ba 100644
--- a/flang/test/Transforms/tbaa4.fir
+++ b/flang/test/Transforms/tbaa4.fir
@@ -1,10 +1,12 @@
 // Test TBAA tags for common and equivalence.
-// RUN: fir-opt --fir-add-alias-tags --split-input-file %s | FileCheck 
--check-prefixes=ALL %s
+// RUN: fir-opt --fir-add-alias-tags --split-input-file %s | FileCheck 
--check-prefixes=ALL,DEFAULT %s
+// RUN: fir-opt --fir-add-alias-tags --local-alloc-tbaa --split-input-file %s 
| FileCheck --check-prefixes=ALL,LOCAL %s
 
 // ALL: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest_common">
 // ALL: #[[ANY:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT]], 0>}>
 // ALL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", members 
= {<#[[ANY]], 0>}>
-// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[TARGETDATA]], 0>}>
 // ALL: #[[BLK:.+]] = #llvm.tbaa_type_desc<id = "global data/blk_", members = 
{<#[[GLOBALDATA]], 0>}>
 // ALL: #[[BLK_A:.+]] = #llvm.tbaa_type_desc<id = "global 
data/blk_/bytes_0_to_3", members = {<#[[BLK]], 0>}>
 // ALL: #[[BLK_C:.+]] = #llvm.tbaa_type_desc<id = "global 
data/blk_/bytes_8_to_47", members = {<#[[BLK]], 0>}>
@@ -52,17 +54,19 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 
 // -----
 
-// ALL: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest_local_equiv">
-// ALL: #[[ANY:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT]], 0>}>
-// ALL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", members 
= {<#[[ANY]], 0>}>
-// ALL: #[[ALLOCATEDDATA:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[ANYDATA]], 0>}>
-// ALL: #[[EQUIV:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest_local_equivEa", members = {<#[[ALLOCATEDDATA]], 0>}>
-// ALL: #[[TAG:.+]] = #llvm.tbaa_tag<base_type = #[[EQUIV]], access_type = 
#[[EQUIV]], offset = 0>
+// LOCAL: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest_local_equiv">
+// LOCAL: #[[ANY:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT]], 0>}>
+// LOCAL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", 
members = {<#[[ANY]], 0>}>
+// LOCAL: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", 
members = {<#[[ANYDATA]], 0>}>
+// LOCAL: #[[ALLOCATEDDATA:.+]] = #llvm.tbaa_type_desc<id = "allocated data", 
members = {<#[[TARGETDATA]], 0>}>
+// LOCAL: #[[EQUIV:.+]] = #llvm.tbaa_type_desc<id = "allocated 
data/_QFtest_local_equivEa", members = {<#[[ALLOCATEDDATA]], 0>}>
+// LOCAL: #[[TAG:.+]] = #llvm.tbaa_tag<base_type = #[[EQUIV]], access_type = 
#[[EQUIV]], offset = 0>
 
 // ALL-LABEL:   func.func @_QPtest_local_equiv() {
-// ALL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ptr<f32>
-// ALL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ref<i32>
-// ALL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ptr<f32>
+// LOCAL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ptr<f32>
+// LOCAL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ref<i32>
+// LOCAL:         fir.store{{.*}}{tbaa = [#[[TAG]]]} : !fir.ptr<f32>
+// DEFAULT-NOT:   fir.store{{.}}tbaa
 module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = dense<64> : 
vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, 
i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, i64 = 
dense<[32, 64]> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = 
dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" 
= "little">, llvm.data_layout = ""} {
 func.func @_QPtest_local_equiv() {
   %c1 = arith.constant 1 : index
@@ -94,7 +98,8 @@ func.func @_QPtest_local_equiv() {
 // ALL: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest_save_equiv">
 // ALL: #[[ANY:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT]], 0>}>
 // ALL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", members 
= {<#[[ANY]], 0>}>
-// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[TARGETDATA]], 0>}>
 // ALL: #[[EQUIV:.+]] = #llvm.tbaa_type_desc<id = "global 
data/_QFtest_save_equivEa", members = {<#[[GLOBALDATA]], 0>}>
 // ALL: #[[TAG:.+]] = #llvm.tbaa_tag<base_type = #[[EQUIV]], access_type = 
#[[EQUIV]], offset = 0>
 module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = dense<64> : 
vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, 
i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, i64 = 
dense<[32, 64]> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = 
dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" 
= "little">, llvm.data_layout = ""} {
@@ -138,7 +143,8 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr = 
dense<64> : vector<4
 // ALL: #[[ROOT:.+]] = #llvm.tbaa_root<id = "Flang function root 
_QPtest_global_equiv">
 // ALL: #[[ANY:.+]] = #llvm.tbaa_type_desc<id = "any access", members = 
{<#[[ROOT]], 0>}>
 // ALL: #[[ANYDATA:.+]] = #llvm.tbaa_type_desc<id = "any data access", members 
= {<#[[ANY]], 0>}>
-// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[TARGETDATA:.+]] = #llvm.tbaa_type_desc<id = "target data", members 
= {<#[[ANYDATA]], 0>}>
+// ALL: #[[GLOBALDATA:.+]] = #llvm.tbaa_type_desc<id = "global data", members 
= {<#[[TARGETDATA]], 0>}>
 // ALL: #[[EQUIV:.+]] = #llvm.tbaa_type_desc<id = "global data/_QMdataEa", 
members = {<#[[GLOBALDATA]], 0>}>
 // ALL: #[[TAG:.+]] = #llvm.tbaa_tag<base_type = #[[EQUIV]], access_type = 
#[[EQUIV]], offset = 0>
 


        
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to