-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Revert "Revert "Revert "[Flang][Driver] Add a flag to control zero initializa…" #123330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…itializa…" This reverts commit 8c63648.
@llvm/pr-subscribers-clang-driver Author: Kiran Chandramohan (kiranchandramohan) ChangesReverts llvm/llvm-project#123097 Reverting due to buildbot failure https://lab.llvm.org/buildbot/#/builders/89/builds/14577. Full diff: https://github.com/llvm/llvm-project/pull/123330.diff 9 Files Affected:
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index c4b9743597bb2e..d38dd2b4e3cf09 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -3505,11 +3505,6 @@ def fno_struct_path_tbaa : Flag<["-"], "fno-struct-path-tbaa">, Group<f_Group>;
def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group<f_Group>;
def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group<f_Group>,
Visibility<[ClangOption, FlangOption]>;
-defm init_global_zero : BoolOptionWithoutMarshalling<"f", "init-global-zero",
- PosFlag<SetTrue, [], [FlangOption, FC1Option],
- "Zero initialize globals without default initialization (default)">,
- NegFlag<SetFalse, [], [FlangOption, FC1Option],
- "Do not zero initialize globals without default initialization">>;
def fno_pointer_tbaa : Flag<["-"], "fno-pointer-tbaa">, Group<f_Group>;
def fno_temp_file : Flag<["-"], "fno-temp-file">, Group<f_Group>,
Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, HelpText<
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 9c1fd28a3a8a26..86ed25badfa2b7 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -155,10 +155,8 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_flang_deprecated_no_hlfir,
options::OPT_fno_ppc_native_vec_elem_order,
options::OPT_fppc_native_vec_elem_order,
- options::OPT_finit_global_zero,
- options::OPT_fno_init_global_zero, options::OPT_ftime_report,
- options::OPT_ftime_report_EQ, options::OPT_funroll_loops,
- options::OPT_fno_unroll_loops});
+ options::OPT_ftime_report, options::OPT_ftime_report_EQ,
+ options::OPT_funroll_loops, options::OPT_fno_unroll_loops});
}
void Flang::addPicOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
diff --git a/flang/include/flang/Lower/LoweringOptions.def b/flang/include/flang/Lower/LoweringOptions.def
index 396c91948be36b..5a6debfdffe030 100644
--- a/flang/include/flang/Lower/LoweringOptions.def
+++ b/flang/include/flang/Lower/LoweringOptions.def
@@ -44,8 +44,5 @@ ENUM_LOWERINGOPT(IntegerWrapAround, unsigned, 1, 0)
/// If false, assume that the shapes/types/allocation-status match.
ENUM_LOWERINGOPT(ReallocateLHS, unsigned, 1, 1)
-/// If true, initialize globals without initialization to zero.
-/// On by default.
-ENUM_LOWERINGOPT(InitGlobalZero, unsigned, 1, 1)
#undef LOWERINGOPT
#undef ENUM_LOWERINGOPT
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 3c6da4687f65d3..15b1e1e0a24881 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1377,14 +1377,6 @@ bool CompilerInvocation::createFromArgs(
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
- // -f[no-]init-global-zero
- if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
- clang::driver::options::OPT_fno_init_global_zero,
- /*default=*/true))
- invoc.loweringOpts.setInitGlobalZero(true);
- else
- invoc.loweringOpts.setInitGlobalZero(false);
-
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.
diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp
index 87236dc293ebbc..9ee42d5cd88002 100644
--- a/flang/lib/Lower/ConvertVariable.cpp
+++ b/flang/lib/Lower/ConvertVariable.cpp
@@ -635,11 +635,7 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
global.setLinkName(builder.createCommonLinkage());
Fortran::lower::createGlobalInitialization(
builder, global, [&](fir::FirOpBuilder &builder) {
- mlir::Value initValue;
- if (converter.getLoweringOptions().getInitGlobalZero())
- initValue = builder.create<fir::ZeroOp>(loc, symTy);
- else
- initValue = builder.create<fir::UndefOp>(loc, symTy);
+ mlir::Value initValue = builder.create<fir::ZeroOp>(loc, symTy);
builder.create<fir::HasValueOp>(loc, initValue);
});
}
diff --git a/flang/test/Driver/fno-zero-init.f90 b/flang/test/Driver/fno-zero-init.f90
deleted file mode 100644
index 2ffa10dd040d52..00000000000000
--- a/flang/test/Driver/fno-zero-init.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-! Check that the driver passes through -f[no-]init-global-zero:
-! RUN: %flang -### -S -finit-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-POS %s
-! RUN: %flang -### -S -fno-init-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-NEG %s
-! Check that the compiler accepts -f[no-]init-global-zero:
-! RUN: %flang_fc1 -emit-hlfir -finit-global-zero %s -o -
-! RUN: %flang_fc1 -emit-hlfir -fno-init-global-zero %s -o -
-
-! CHECK-POS: "-fc1"{{.*}}"-finit-global-zero"
-! CHECK-NEG: "-fc1"{{.*}}"-fno-init-global-zero"
diff --git a/flang/test/Lower/zero_init.f90 b/flang/test/Lower/zero_init.f90
deleted file mode 100644
index 5ed6f2247de3b2..00000000000000
--- a/flang/test/Lower/zero_init.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-
-module m1
- real :: x
-end module m1
-
-!CHECK-DEFAULT: fir.global @_QMm1Ex : f32 {
-!CHECK-DEFAULT: %[[UNDEF:.*]] = fir.zero_bits f32
-!CHECK-DEFAULT: fir.has_value %[[UNDEF]] : f32
-!CHECK-DEFAULT: }
-
-!CHECK-NO-ZERO-INIT: fir.global @_QMm1Ex : f32 {
-!CHECK-NO-ZERO-INIT: %[[UNDEF:.*]] = fir.undefined f32
-!CHECK-NO-ZERO-INIT: fir.has_value %[[UNDEF]] : f32
-!CHECK-NO-ZERO-INIT: }
diff --git a/flang/test/Lower/zero_init_default_init.f90 b/flang/test/Lower/zero_init_default_init.f90
deleted file mode 100644
index e2d1f545e35a57..00000000000000
--- a/flang/test/Lower/zero_init_default_init.f90
+++ /dev/null
@@ -1,22 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck %s
-
-! Test that the flag does not affect globals with default init
-
-module m2
- type val
- integer :: my_val = 1
- end type val
- type(val) :: v1
-end module m2
-
-!CHECK: fir.global @_QMm2Ev1 : !fir.type<_QMm2Tval{my_val:i32}> {
-!CHECK: %[[V1:.*]] = fir.undefined !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: %[[ONE:.*]] = arith.constant 1 : i32
-!CHECK: %[[V1_INIT:.*]] = fir.insert_value %[[V1]], %[[ONE]], ["my_val", !fir.type<_QMm2Tval{my_val:i32}>] : (!fir.type<_QMm2Tval{my_val:i32}>, i32) -> !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: fir.has_value %[[V1_INIT]] : !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: }
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp
index dafbcd856389a8..7efc460be86795 100644
--- a/flang/tools/bbc/bbc.cpp
+++ b/flang/tools/bbc/bbc.cpp
@@ -234,11 +234,6 @@ static llvm::cl::opt<bool> integerWrapAround(
llvm::cl::desc("Treat signed integer overflow as two's complement"),
llvm::cl::init(false));
-static llvm::cl::opt<bool> initGlobalZero(
- "finit-global-zero",
- llvm::cl::desc("Zero initialize globals without default initialization"),
- llvm::cl::init(true));
-
static llvm::cl::opt<bool>
reallocateLHS("frealloc-lhs",
llvm::cl::desc("Follow Fortran 2003 rules for (re)allocating "
@@ -386,7 +381,6 @@ static llvm::LogicalResult convertFortranSourceToMLIR(
loweringOptions.setNoPPCNativeVecElemOrder(enableNoPPCNativeVecElemOrder);
loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR);
loweringOptions.setIntegerWrapAround(integerWrapAround);
- loweringOptions.setInitGlobalZero(initGlobalZero);
loweringOptions.setReallocateLHS(reallocateLHS);
std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {};
Fortran::frontend::TargetOptions targetOpts;
|
@llvm/pr-subscribers-flang-fir-hlfir Author: Kiran Chandramohan (kiranchandramohan) ChangesReverts llvm/llvm-project#123097 Reverting due to buildbot failure https://lab.llvm.org/buildbot/#/builders/89/builds/14577. Full diff: https://github.com/llvm/llvm-project/pull/123330.diff 9 Files Affected:
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index c4b9743597bb2e..d38dd2b4e3cf09 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -3505,11 +3505,6 @@ def fno_struct_path_tbaa : Flag<["-"], "fno-struct-path-tbaa">, Group<f_Group>;
def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group<f_Group>;
def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group<f_Group>,
Visibility<[ClangOption, FlangOption]>;
-defm init_global_zero : BoolOptionWithoutMarshalling<"f", "init-global-zero",
- PosFlag<SetTrue, [], [FlangOption, FC1Option],
- "Zero initialize globals without default initialization (default)">,
- NegFlag<SetFalse, [], [FlangOption, FC1Option],
- "Do not zero initialize globals without default initialization">>;
def fno_pointer_tbaa : Flag<["-"], "fno-pointer-tbaa">, Group<f_Group>;
def fno_temp_file : Flag<["-"], "fno-temp-file">, Group<f_Group>,
Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, HelpText<
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 9c1fd28a3a8a26..86ed25badfa2b7 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -155,10 +155,8 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_flang_deprecated_no_hlfir,
options::OPT_fno_ppc_native_vec_elem_order,
options::OPT_fppc_native_vec_elem_order,
- options::OPT_finit_global_zero,
- options::OPT_fno_init_global_zero, options::OPT_ftime_report,
- options::OPT_ftime_report_EQ, options::OPT_funroll_loops,
- options::OPT_fno_unroll_loops});
+ options::OPT_ftime_report, options::OPT_ftime_report_EQ,
+ options::OPT_funroll_loops, options::OPT_fno_unroll_loops});
}
void Flang::addPicOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
diff --git a/flang/include/flang/Lower/LoweringOptions.def b/flang/include/flang/Lower/LoweringOptions.def
index 396c91948be36b..5a6debfdffe030 100644
--- a/flang/include/flang/Lower/LoweringOptions.def
+++ b/flang/include/flang/Lower/LoweringOptions.def
@@ -44,8 +44,5 @@ ENUM_LOWERINGOPT(IntegerWrapAround, unsigned, 1, 0)
/// If false, assume that the shapes/types/allocation-status match.
ENUM_LOWERINGOPT(ReallocateLHS, unsigned, 1, 1)
-/// If true, initialize globals without initialization to zero.
-/// On by default.
-ENUM_LOWERINGOPT(InitGlobalZero, unsigned, 1, 1)
#undef LOWERINGOPT
#undef ENUM_LOWERINGOPT
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 3c6da4687f65d3..15b1e1e0a24881 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1377,14 +1377,6 @@ bool CompilerInvocation::createFromArgs(
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
- // -f[no-]init-global-zero
- if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
- clang::driver::options::OPT_fno_init_global_zero,
- /*default=*/true))
- invoc.loweringOpts.setInitGlobalZero(true);
- else
- invoc.loweringOpts.setInitGlobalZero(false);
-
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.
diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp
index 87236dc293ebbc..9ee42d5cd88002 100644
--- a/flang/lib/Lower/ConvertVariable.cpp
+++ b/flang/lib/Lower/ConvertVariable.cpp
@@ -635,11 +635,7 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
global.setLinkName(builder.createCommonLinkage());
Fortran::lower::createGlobalInitialization(
builder, global, [&](fir::FirOpBuilder &builder) {
- mlir::Value initValue;
- if (converter.getLoweringOptions().getInitGlobalZero())
- initValue = builder.create<fir::ZeroOp>(loc, symTy);
- else
- initValue = builder.create<fir::UndefOp>(loc, symTy);
+ mlir::Value initValue = builder.create<fir::ZeroOp>(loc, symTy);
builder.create<fir::HasValueOp>(loc, initValue);
});
}
diff --git a/flang/test/Driver/fno-zero-init.f90 b/flang/test/Driver/fno-zero-init.f90
deleted file mode 100644
index 2ffa10dd040d52..00000000000000
--- a/flang/test/Driver/fno-zero-init.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-! Check that the driver passes through -f[no-]init-global-zero:
-! RUN: %flang -### -S -finit-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-POS %s
-! RUN: %flang -### -S -fno-init-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-NEG %s
-! Check that the compiler accepts -f[no-]init-global-zero:
-! RUN: %flang_fc1 -emit-hlfir -finit-global-zero %s -o -
-! RUN: %flang_fc1 -emit-hlfir -fno-init-global-zero %s -o -
-
-! CHECK-POS: "-fc1"{{.*}}"-finit-global-zero"
-! CHECK-NEG: "-fc1"{{.*}}"-fno-init-global-zero"
diff --git a/flang/test/Lower/zero_init.f90 b/flang/test/Lower/zero_init.f90
deleted file mode 100644
index 5ed6f2247de3b2..00000000000000
--- a/flang/test/Lower/zero_init.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-
-module m1
- real :: x
-end module m1
-
-!CHECK-DEFAULT: fir.global @_QMm1Ex : f32 {
-!CHECK-DEFAULT: %[[UNDEF:.*]] = fir.zero_bits f32
-!CHECK-DEFAULT: fir.has_value %[[UNDEF]] : f32
-!CHECK-DEFAULT: }
-
-!CHECK-NO-ZERO-INIT: fir.global @_QMm1Ex : f32 {
-!CHECK-NO-ZERO-INIT: %[[UNDEF:.*]] = fir.undefined f32
-!CHECK-NO-ZERO-INIT: fir.has_value %[[UNDEF]] : f32
-!CHECK-NO-ZERO-INIT: }
diff --git a/flang/test/Lower/zero_init_default_init.f90 b/flang/test/Lower/zero_init_default_init.f90
deleted file mode 100644
index e2d1f545e35a57..00000000000000
--- a/flang/test/Lower/zero_init_default_init.f90
+++ /dev/null
@@ -1,22 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck %s
-
-! Test that the flag does not affect globals with default init
-
-module m2
- type val
- integer :: my_val = 1
- end type val
- type(val) :: v1
-end module m2
-
-!CHECK: fir.global @_QMm2Ev1 : !fir.type<_QMm2Tval{my_val:i32}> {
-!CHECK: %[[V1:.*]] = fir.undefined !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: %[[ONE:.*]] = arith.constant 1 : i32
-!CHECK: %[[V1_INIT:.*]] = fir.insert_value %[[V1]], %[[ONE]], ["my_val", !fir.type<_QMm2Tval{my_val:i32}>] : (!fir.type<_QMm2Tval{my_val:i32}>, i32) -> !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: fir.has_value %[[V1_INIT]] : !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: }
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp
index dafbcd856389a8..7efc460be86795 100644
--- a/flang/tools/bbc/bbc.cpp
+++ b/flang/tools/bbc/bbc.cpp
@@ -234,11 +234,6 @@ static llvm::cl::opt<bool> integerWrapAround(
llvm::cl::desc("Treat signed integer overflow as two's complement"),
llvm::cl::init(false));
-static llvm::cl::opt<bool> initGlobalZero(
- "finit-global-zero",
- llvm::cl::desc("Zero initialize globals without default initialization"),
- llvm::cl::init(true));
-
static llvm::cl::opt<bool>
reallocateLHS("frealloc-lhs",
llvm::cl::desc("Follow Fortran 2003 rules for (re)allocating "
@@ -386,7 +381,6 @@ static llvm::LogicalResult convertFortranSourceToMLIR(
loweringOptions.setNoPPCNativeVecElemOrder(enableNoPPCNativeVecElemOrder);
loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR);
loweringOptions.setIntegerWrapAround(integerWrapAround);
- loweringOptions.setInitGlobalZero(initGlobalZero);
loweringOptions.setReallocateLHS(reallocateLHS);
std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {};
Fortran::frontend::TargetOptions targetOpts;
|
@llvm/pr-subscribers-clang Author: Kiran Chandramohan (kiranchandramohan) ChangesReverts llvm/llvm-project#123097 Reverting due to buildbot failure https://lab.llvm.org/buildbot/#/builders/89/builds/14577. Full diff: https://github.com/llvm/llvm-project/pull/123330.diff 9 Files Affected:
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index c4b9743597bb2e..d38dd2b4e3cf09 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -3505,11 +3505,6 @@ def fno_struct_path_tbaa : Flag<["-"], "fno-struct-path-tbaa">, Group<f_Group>;
def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group<f_Group>;
def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group<f_Group>,
Visibility<[ClangOption, FlangOption]>;
-defm init_global_zero : BoolOptionWithoutMarshalling<"f", "init-global-zero",
- PosFlag<SetTrue, [], [FlangOption, FC1Option],
- "Zero initialize globals without default initialization (default)">,
- NegFlag<SetFalse, [], [FlangOption, FC1Option],
- "Do not zero initialize globals without default initialization">>;
def fno_pointer_tbaa : Flag<["-"], "fno-pointer-tbaa">, Group<f_Group>;
def fno_temp_file : Flag<["-"], "fno-temp-file">, Group<f_Group>,
Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, HelpText<
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 9c1fd28a3a8a26..86ed25badfa2b7 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -155,10 +155,8 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_flang_deprecated_no_hlfir,
options::OPT_fno_ppc_native_vec_elem_order,
options::OPT_fppc_native_vec_elem_order,
- options::OPT_finit_global_zero,
- options::OPT_fno_init_global_zero, options::OPT_ftime_report,
- options::OPT_ftime_report_EQ, options::OPT_funroll_loops,
- options::OPT_fno_unroll_loops});
+ options::OPT_ftime_report, options::OPT_ftime_report_EQ,
+ options::OPT_funroll_loops, options::OPT_fno_unroll_loops});
}
void Flang::addPicOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
diff --git a/flang/include/flang/Lower/LoweringOptions.def b/flang/include/flang/Lower/LoweringOptions.def
index 396c91948be36b..5a6debfdffe030 100644
--- a/flang/include/flang/Lower/LoweringOptions.def
+++ b/flang/include/flang/Lower/LoweringOptions.def
@@ -44,8 +44,5 @@ ENUM_LOWERINGOPT(IntegerWrapAround, unsigned, 1, 0)
/// If false, assume that the shapes/types/allocation-status match.
ENUM_LOWERINGOPT(ReallocateLHS, unsigned, 1, 1)
-/// If true, initialize globals without initialization to zero.
-/// On by default.
-ENUM_LOWERINGOPT(InitGlobalZero, unsigned, 1, 1)
#undef LOWERINGOPT
#undef ENUM_LOWERINGOPT
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 3c6da4687f65d3..15b1e1e0a24881 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1377,14 +1377,6 @@ bool CompilerInvocation::createFromArgs(
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
- // -f[no-]init-global-zero
- if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
- clang::driver::options::OPT_fno_init_global_zero,
- /*default=*/true))
- invoc.loweringOpts.setInitGlobalZero(true);
- else
- invoc.loweringOpts.setInitGlobalZero(false);
-
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.
diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp
index 87236dc293ebbc..9ee42d5cd88002 100644
--- a/flang/lib/Lower/ConvertVariable.cpp
+++ b/flang/lib/Lower/ConvertVariable.cpp
@@ -635,11 +635,7 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
global.setLinkName(builder.createCommonLinkage());
Fortran::lower::createGlobalInitialization(
builder, global, [&](fir::FirOpBuilder &builder) {
- mlir::Value initValue;
- if (converter.getLoweringOptions().getInitGlobalZero())
- initValue = builder.create<fir::ZeroOp>(loc, symTy);
- else
- initValue = builder.create<fir::UndefOp>(loc, symTy);
+ mlir::Value initValue = builder.create<fir::ZeroOp>(loc, symTy);
builder.create<fir::HasValueOp>(loc, initValue);
});
}
diff --git a/flang/test/Driver/fno-zero-init.f90 b/flang/test/Driver/fno-zero-init.f90
deleted file mode 100644
index 2ffa10dd040d52..00000000000000
--- a/flang/test/Driver/fno-zero-init.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-! Check that the driver passes through -f[no-]init-global-zero:
-! RUN: %flang -### -S -finit-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-POS %s
-! RUN: %flang -### -S -fno-init-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-NEG %s
-! Check that the compiler accepts -f[no-]init-global-zero:
-! RUN: %flang_fc1 -emit-hlfir -finit-global-zero %s -o -
-! RUN: %flang_fc1 -emit-hlfir -fno-init-global-zero %s -o -
-
-! CHECK-POS: "-fc1"{{.*}}"-finit-global-zero"
-! CHECK-NEG: "-fc1"{{.*}}"-fno-init-global-zero"
diff --git a/flang/test/Lower/zero_init.f90 b/flang/test/Lower/zero_init.f90
deleted file mode 100644
index 5ed6f2247de3b2..00000000000000
--- a/flang/test/Lower/zero_init.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-
-module m1
- real :: x
-end module m1
-
-!CHECK-DEFAULT: fir.global @_QMm1Ex : f32 {
-!CHECK-DEFAULT: %[[UNDEF:.*]] = fir.zero_bits f32
-!CHECK-DEFAULT: fir.has_value %[[UNDEF]] : f32
-!CHECK-DEFAULT: }
-
-!CHECK-NO-ZERO-INIT: fir.global @_QMm1Ex : f32 {
-!CHECK-NO-ZERO-INIT: %[[UNDEF:.*]] = fir.undefined f32
-!CHECK-NO-ZERO-INIT: fir.has_value %[[UNDEF]] : f32
-!CHECK-NO-ZERO-INIT: }
diff --git a/flang/test/Lower/zero_init_default_init.f90 b/flang/test/Lower/zero_init_default_init.f90
deleted file mode 100644
index e2d1f545e35a57..00000000000000
--- a/flang/test/Lower/zero_init_default_init.f90
+++ /dev/null
@@ -1,22 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck %s
-
-! Test that the flag does not affect globals with default init
-
-module m2
- type val
- integer :: my_val = 1
- end type val
- type(val) :: v1
-end module m2
-
-!CHECK: fir.global @_QMm2Ev1 : !fir.type<_QMm2Tval{my_val:i32}> {
-!CHECK: %[[V1:.*]] = fir.undefined !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: %[[ONE:.*]] = arith.constant 1 : i32
-!CHECK: %[[V1_INIT:.*]] = fir.insert_value %[[V1]], %[[ONE]], ["my_val", !fir.type<_QMm2Tval{my_val:i32}>] : (!fir.type<_QMm2Tval{my_val:i32}>, i32) -> !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: fir.has_value %[[V1_INIT]] : !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: }
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp
index dafbcd856389a8..7efc460be86795 100644
--- a/flang/tools/bbc/bbc.cpp
+++ b/flang/tools/bbc/bbc.cpp
@@ -234,11 +234,6 @@ static llvm::cl::opt<bool> integerWrapAround(
llvm::cl::desc("Treat signed integer overflow as two's complement"),
llvm::cl::init(false));
-static llvm::cl::opt<bool> initGlobalZero(
- "finit-global-zero",
- llvm::cl::desc("Zero initialize globals without default initialization"),
- llvm::cl::init(true));
-
static llvm::cl::opt<bool>
reallocateLHS("frealloc-lhs",
llvm::cl::desc("Follow Fortran 2003 rules for (re)allocating "
@@ -386,7 +381,6 @@ static llvm::LogicalResult convertFortranSourceToMLIR(
loweringOptions.setNoPPCNativeVecElemOrder(enableNoPPCNativeVecElemOrder);
loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR);
loweringOptions.setIntegerWrapAround(integerWrapAround);
- loweringOptions.setInitGlobalZero(initGlobalZero);
loweringOptions.setReallocateLHS(reallocateLHS);
std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {};
Fortran::frontend::TargetOptions targetOpts;
|
@llvm/pr-subscribers-flang-driver Author: Kiran Chandramohan (kiranchandramohan) ChangesReverts llvm/llvm-project#123097 Reverting due to buildbot failure https://lab.llvm.org/buildbot/#/builders/89/builds/14577. Full diff: https://github.com/llvm/llvm-project/pull/123330.diff 9 Files Affected:
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index c4b9743597bb2e..d38dd2b4e3cf09 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -3505,11 +3505,6 @@ def fno_struct_path_tbaa : Flag<["-"], "fno-struct-path-tbaa">, Group<f_Group>;
def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group<f_Group>;
def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group<f_Group>,
Visibility<[ClangOption, FlangOption]>;
-defm init_global_zero : BoolOptionWithoutMarshalling<"f", "init-global-zero",
- PosFlag<SetTrue, [], [FlangOption, FC1Option],
- "Zero initialize globals without default initialization (default)">,
- NegFlag<SetFalse, [], [FlangOption, FC1Option],
- "Do not zero initialize globals without default initialization">>;
def fno_pointer_tbaa : Flag<["-"], "fno-pointer-tbaa">, Group<f_Group>;
def fno_temp_file : Flag<["-"], "fno-temp-file">, Group<f_Group>,
Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, HelpText<
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 9c1fd28a3a8a26..86ed25badfa2b7 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -155,10 +155,8 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_flang_deprecated_no_hlfir,
options::OPT_fno_ppc_native_vec_elem_order,
options::OPT_fppc_native_vec_elem_order,
- options::OPT_finit_global_zero,
- options::OPT_fno_init_global_zero, options::OPT_ftime_report,
- options::OPT_ftime_report_EQ, options::OPT_funroll_loops,
- options::OPT_fno_unroll_loops});
+ options::OPT_ftime_report, options::OPT_ftime_report_EQ,
+ options::OPT_funroll_loops, options::OPT_fno_unroll_loops});
}
void Flang::addPicOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
diff --git a/flang/include/flang/Lower/LoweringOptions.def b/flang/include/flang/Lower/LoweringOptions.def
index 396c91948be36b..5a6debfdffe030 100644
--- a/flang/include/flang/Lower/LoweringOptions.def
+++ b/flang/include/flang/Lower/LoweringOptions.def
@@ -44,8 +44,5 @@ ENUM_LOWERINGOPT(IntegerWrapAround, unsigned, 1, 0)
/// If false, assume that the shapes/types/allocation-status match.
ENUM_LOWERINGOPT(ReallocateLHS, unsigned, 1, 1)
-/// If true, initialize globals without initialization to zero.
-/// On by default.
-ENUM_LOWERINGOPT(InitGlobalZero, unsigned, 1, 1)
#undef LOWERINGOPT
#undef ENUM_LOWERINGOPT
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 3c6da4687f65d3..15b1e1e0a24881 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1377,14 +1377,6 @@ bool CompilerInvocation::createFromArgs(
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
- // -f[no-]init-global-zero
- if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
- clang::driver::options::OPT_fno_init_global_zero,
- /*default=*/true))
- invoc.loweringOpts.setInitGlobalZero(true);
- else
- invoc.loweringOpts.setInitGlobalZero(false);
-
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.
diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp
index 87236dc293ebbc..9ee42d5cd88002 100644
--- a/flang/lib/Lower/ConvertVariable.cpp
+++ b/flang/lib/Lower/ConvertVariable.cpp
@@ -635,11 +635,7 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
global.setLinkName(builder.createCommonLinkage());
Fortran::lower::createGlobalInitialization(
builder, global, [&](fir::FirOpBuilder &builder) {
- mlir::Value initValue;
- if (converter.getLoweringOptions().getInitGlobalZero())
- initValue = builder.create<fir::ZeroOp>(loc, symTy);
- else
- initValue = builder.create<fir::UndefOp>(loc, symTy);
+ mlir::Value initValue = builder.create<fir::ZeroOp>(loc, symTy);
builder.create<fir::HasValueOp>(loc, initValue);
});
}
diff --git a/flang/test/Driver/fno-zero-init.f90 b/flang/test/Driver/fno-zero-init.f90
deleted file mode 100644
index 2ffa10dd040d52..00000000000000
--- a/flang/test/Driver/fno-zero-init.f90
+++ /dev/null
@@ -1,9 +0,0 @@
-! Check that the driver passes through -f[no-]init-global-zero:
-! RUN: %flang -### -S -finit-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-POS %s
-! RUN: %flang -### -S -fno-init-global-zero %s -o - 2>&1 | FileCheck --check-prefix=CHECK-NEG %s
-! Check that the compiler accepts -f[no-]init-global-zero:
-! RUN: %flang_fc1 -emit-hlfir -finit-global-zero %s -o -
-! RUN: %flang_fc1 -emit-hlfir -fno-init-global-zero %s -o -
-
-! CHECK-POS: "-fc1"{{.*}}"-finit-global-zero"
-! CHECK-NEG: "-fc1"{{.*}}"-fno-init-global-zero"
diff --git a/flang/test/Lower/zero_init.f90 b/flang/test/Lower/zero_init.f90
deleted file mode 100644
index 5ed6f2247de3b2..00000000000000
--- a/flang/test/Lower/zero_init.f90
+++ /dev/null
@@ -1,20 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-DEFAULT %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck --check-prefix=CHECK-NO-ZERO-INIT %s
-
-module m1
- real :: x
-end module m1
-
-!CHECK-DEFAULT: fir.global @_QMm1Ex : f32 {
-!CHECK-DEFAULT: %[[UNDEF:.*]] = fir.zero_bits f32
-!CHECK-DEFAULT: fir.has_value %[[UNDEF]] : f32
-!CHECK-DEFAULT: }
-
-!CHECK-NO-ZERO-INIT: fir.global @_QMm1Ex : f32 {
-!CHECK-NO-ZERO-INIT: %[[UNDEF:.*]] = fir.undefined f32
-!CHECK-NO-ZERO-INIT: fir.has_value %[[UNDEF]] : f32
-!CHECK-NO-ZERO-INIT: }
diff --git a/flang/test/Lower/zero_init_default_init.f90 b/flang/test/Lower/zero_init_default_init.f90
deleted file mode 100644
index e2d1f545e35a57..00000000000000
--- a/flang/test/Lower/zero_init_default_init.f90
+++ /dev/null
@@ -1,22 +0,0 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
-! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck %s
-
-! Test that the flag does not affect globals with default init
-
-module m2
- type val
- integer :: my_val = 1
- end type val
- type(val) :: v1
-end module m2
-
-!CHECK: fir.global @_QMm2Ev1 : !fir.type<_QMm2Tval{my_val:i32}> {
-!CHECK: %[[V1:.*]] = fir.undefined !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: %[[ONE:.*]] = arith.constant 1 : i32
-!CHECK: %[[V1_INIT:.*]] = fir.insert_value %[[V1]], %[[ONE]], ["my_val", !fir.type<_QMm2Tval{my_val:i32}>] : (!fir.type<_QMm2Tval{my_val:i32}>, i32) -> !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: fir.has_value %[[V1_INIT]] : !fir.type<_QMm2Tval{my_val:i32}>
-!CHECK: }
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp
index dafbcd856389a8..7efc460be86795 100644
--- a/flang/tools/bbc/bbc.cpp
+++ b/flang/tools/bbc/bbc.cpp
@@ -234,11 +234,6 @@ static llvm::cl::opt<bool> integerWrapAround(
llvm::cl::desc("Treat signed integer overflow as two's complement"),
llvm::cl::init(false));
-static llvm::cl::opt<bool> initGlobalZero(
- "finit-global-zero",
- llvm::cl::desc("Zero initialize globals without default initialization"),
- llvm::cl::init(true));
-
static llvm::cl::opt<bool>
reallocateLHS("frealloc-lhs",
llvm::cl::desc("Follow Fortran 2003 rules for (re)allocating "
@@ -386,7 +381,6 @@ static llvm::LogicalResult convertFortranSourceToMLIR(
loweringOptions.setNoPPCNativeVecElemOrder(enableNoPPCNativeVecElemOrder);
loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR);
loweringOptions.setIntegerWrapAround(integerWrapAround);
- loweringOptions.setInitGlobalZero(initGlobalZero);
loweringOptions.setReallocateLHS(reallocateLHS);
std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {};
Fortran::frontend::TargetOptions targetOpts;
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/73/builds/11896 Here is the relevant piece of the build log for the reference
|
The determinism of the failure with this patch is disturbing and I think I now know why: you are adding a test with This means your patch to |
Thanks @jeanPerier for looking into this in detail. That makes sense. I have #123364 to make the changes for |
Ah, I think I mixed up In any event, it wou seem that |
…ization" (#123606) Reverts llvm/llvm-project#123330
Reverts #123097
Reverting due to buildbot failure https://lab.llvm.org/buildbot/#/builders/89/builds/14577.