Skip to content

Commit f337c8e

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:f8f934e22c4a into amd-gfx:bd63dc7b6e97
Local branch amd-gfx bd63dc7 Merged main:16cf9c9af004 into amd-gfx:251b3d8041ba Remote branch main f8f934e [libc][NFC] Make the dummy header target under overlay build a library. (llvm#66329)
2 parents bd63dc7 + f8f934e commit f337c8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+416
-1122
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 664 deletions
This file was deleted.

.github/new-prs-labeler.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ mlir:dlti:
172172

173173
mlir:emitc:
174174
- mlir/**/EmitC/**
175+
- mlir/lib/Target/Cpp/**
175176

176177
mlir:func:
177178
- mlir/**/Func/**
@@ -183,7 +184,8 @@ mlir:index:
183184
- mlir/**/Index/**
184185

185186
mlir:llvm:
186-
- mlir/**/LLVM/**
187+
- mlir/**/LLVM*
188+
- mlir/**/LLVM*/**
187189

188190
mlir:linalg:
189191
- mlir/**/*linalg/**
@@ -493,14 +495,19 @@ llvm:ir:
493495
- llvm/lib/IR/**
494496
- llvm/include/llvm/IR/**
495497
- llvm/docs/LangRef.rst
498+
- llvm/unittests/IR/**
496499

497500
llvm:analysis:
498501
- llvm/lib/Analysis/**
499502
- llvm/include/llvm/Analysis/**
503+
- llvm/test/Analysis/**
504+
- llvm/unittests/Analysis/**
500505

501506
llvm:transforms:
502507
- llvm/lib/Transforms/**
503508
- llvm/include/llvm/Transforms/**
509+
- llvm/test/Transforms/**
510+
- llvm/unittests/Transforms/**
504511

505512
clangd:
506513
- clang-tools-extra/clangd/**
@@ -727,3 +734,33 @@ backend:X86:
727734

728735
third-party:unittests:
729736
- third-party/unittests/**
737+
738+
llvm:binary-utilities:
739+
- llvm/docs/CommandGuide/llvm-*
740+
- llvm/include/llvm/BinaryFormat/**
741+
- llvm/include/llvm/DebugInfo/Symbolize/**
742+
- llvm/include/llvm/ObjCopy/**
743+
- llvm/include/llvm/Object/**
744+
- llvm/lib/BinaryFormat/**
745+
- llvm/lib/DebugInfo/Symbolize/**
746+
- llvm/lib/ObjCopy/**
747+
- llvm/lib/Object/**
748+
- llvm/test/Object/**
749+
- llvm/test/tools/llvm-ar/**
750+
- llvm/test/tools/llvm-cxxfilt/**
751+
- llvm/test/tools/llvm-nm/**
752+
- llvm/test/tools/llvm-objcopy/**
753+
- llvm/test/tools/llvm-objdump/**
754+
- llvm/test/tools/llvm-readobj/**
755+
- llvm/test/tools/llvm-size/**
756+
- llvm/test/tools/llvm-strings/**
757+
- llvm/test/tools/llvm-symbolizer/**
758+
- llvm/tools/llvm-ar/**
759+
- llvm/tools/llvm-cxxfilt/**
760+
- llvm/tools/llvm-nm/**
761+
- llvm/tools/llvm-objcopy/**
762+
- llvm/tools/llvm-objdump/**
763+
- llvm/tools/llvm-readobj/**
764+
- llvm/tools/llvm-size/**
765+
- llvm/tools/llvm-strings/**
766+
- llvm/tools/llvm-symbolizer/**

clang/include/clang/Basic/DiagnosticDriverKinds.td

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -674,9 +674,6 @@ def err_cc1_round_trip_mismatch : Error<
674674
def err_cc1_unbounded_vscale_min : Error<
675675
"minimum vscale must be an unsigned integer greater than 0">;
676676

677-
def err_drv_using_omit_rtti_component_without_no_rtti : Error<
678-
"-fexperimental-omit-vtable-rtti call only be used with -fno-rtti">;
679-
680677
def err_drv_ssp_missing_offset_argument : Error<
681678
"'%0' is used without '-mstack-protector-guard-offset', and there is no default">;
682679

clang/include/clang/Basic/LangOptions.def

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,9 +450,6 @@ LANGOPT(SpeculativeLoadHardening, 1, 0, "Speculative load hardening enabled")
450450
LANGOPT(RelativeCXXABIVTables, 1, 0,
451451
"Use an ABI-incompatible v-table layout that uses relative references")
452452

453-
LANGOPT(OmitVTableRTTI, 1, 0,
454-
"Use an ABI-incompatible v-table layout that omits the RTTI component")
455-
456453
LANGOPT(VScaleMin, 32, 0, "Minimum vscale value")
457454
LANGOPT(VScaleMax, 32, 0, "Maximum vscale value")
458455

clang/include/clang/Driver/Options.td

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2671,12 +2671,6 @@ def fno_experimental_relative_cxx_abi_vtables :
26712671
Group<f_clang_Group>, Visibility<[ClangOption, CC1Option]>,
26722672
HelpText<"Do not use the experimental C++ class ABI for classes with virtual tables">;
26732673

2674-
defm experimental_omit_vtable_rtti : BoolFOption<"experimental-omit-vtable-rtti",
2675-
LangOpts<"OmitVTableRTTI">, DefaultFalse,
2676-
PosFlag<SetTrue, [], [CC1Option], "Omit">,
2677-
NegFlag<SetFalse, [], [CC1Option], "Do not omit">,
2678-
BothFlags<[], [CC1Option], " the RTTI component from virtual tables">>;
2679-
26802674
def fcxx_abi_EQ : Joined<["-"], "fc++-abi=">,
26812675
Group<f_clang_Group>, Visibility<[ClangOption, CC1Option]>,
26822676
HelpText<"C++ ABI to use. This will override the target C++ ABI.">;

clang/lib/AST/VTableBuilder.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -665,11 +665,7 @@ CharUnits VCallAndVBaseOffsetBuilder::getCurrentOffsetOffset() const {
665665
// vtable address point. (We subtract 3 to account for the information just
666666
// above the address point, the RTTI info, the offset to top, and the
667667
// vcall offset itself).
668-
size_t NumComponentsAboveAddrPoint = 3;
669-
if (Context.getLangOpts().OmitVTableRTTI)
670-
NumComponentsAboveAddrPoint--;
671-
int64_t OffsetIndex =
672-
-(int64_t)(NumComponentsAboveAddrPoint + Components.size());
668+
int64_t OffsetIndex = -(int64_t)(3 + Components.size());
673669

674670
// Under the relative ABI, the offset widths are 32-bit ints instead of
675671
// pointer widths.
@@ -1673,8 +1669,7 @@ void ItaniumVTableBuilder::LayoutPrimaryAndSecondaryVTables(
16731669
Components.push_back(VTableComponent::MakeOffsetToTop(OffsetToTop));
16741670

16751671
// Next, add the RTTI.
1676-
if (!Context.getLangOpts().OmitVTableRTTI)
1677-
Components.push_back(VTableComponent::MakeRTTI(MostDerivedClass));
1672+
Components.push_back(VTableComponent::MakeRTTI(MostDerivedClass));
16781673

16791674
uint64_t AddressPoint = Components.size();
16801675

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5526,9 +5526,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
55265526
Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables,
55275527
options::OPT_fno_experimental_relative_cxx_abi_vtables);
55285528

5529-
Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti,
5530-
options::OPT_fno_experimental_omit_vtable_rtti);
5531-
55325529
// Handle segmented stacks.
55335530
Args.addOptInFlag(CmdArgs, options::OPT_fsplit_stack,
55345531
options::OPT_fno_split_stack);
@@ -6010,9 +6007,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
60106007
Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables,
60116008
options::OPT_fno_experimental_relative_cxx_abi_vtables);
60126009

6013-
Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti,
6014-
options::OPT_fno_experimental_omit_vtable_rtti);
6015-
60166010
if (Arg *A = Args.getLastArg(options::OPT_ffuchsia_api_level_EQ))
60176011
A->render(Args, CmdArgs);
60186012

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4109,14 +4109,6 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
41094109
options::OPT_fno_experimental_relative_cxx_abi_vtables,
41104110
TargetCXXABI::usesRelativeVTables(T));
41114111

4112-
// RTTI is on by default.
4113-
bool HasRTTI = Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti, true);
4114-
Opts.OmitVTableRTTI =
4115-
Args.hasFlag(options::OPT_fexperimental_omit_vtable_rtti,
4116-
options::OPT_fno_experimental_omit_vtable_rtti, false);
4117-
if (Opts.OmitVTableRTTI && HasRTTI)
4118-
Diags.Report(diag::err_drv_using_omit_rtti_component_without_no_rtti);
4119-
41204112
for (const auto &A : Args.getAllArgValues(OPT_fmacro_prefix_map_EQ)) {
41214113
auto Split = StringRef(A).split('=');
41224114
Opts.MacroPrefixMap.insert(

clang/test/CodeGenCXX/OmitRTTIComponentABI/simple-vtable-definition.cpp

Lines changed: 0 additions & 32 deletions
This file was deleted.

clang/test/CodeGenCXX/OmitRTTIComponentABI/vbase-offset.cpp

Lines changed: 0 additions & 51 deletions
This file was deleted.

clang/test/CodeGenCXX/OmitRTTIComponentABI/vtable-layout.cpp

Lines changed: 0 additions & 19 deletions
This file was deleted.

clang/test/Driver/omit-rtti-component-flag.cpp

Lines changed: 0 additions & 5 deletions
This file was deleted.

clang/test/Driver/omit-rtti-component-without-no-rtti.cpp

Lines changed: 0 additions & 15 deletions
This file was deleted.

flang/include/flang/Lower/OpenACC.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ void attachDeclarePreDeallocAction(AbstractConverter &, fir::FirOpBuilder &,
103103
void attachDeclarePostDeallocAction(AbstractConverter &, fir::FirOpBuilder &,
104104
const Fortran::semantics::Symbol &);
105105

106+
void genOpenACCTerminator(fir::FirOpBuilder &, mlir::Operation *,
107+
mlir::Location);
108+
106109
} // namespace lower
107110
} // namespace Fortran
108111

flang/lib/Lower/OpenACC.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3299,3 +3299,12 @@ void Fortran::lower::attachDeclarePostDeallocAction(
32993299
/*preAlloc=*/{}, /*postAlloc=*/{}, /*preDealloc=*/{},
33003300
/*postDealloc=*/builder.getSymbolRefAttr(fctName.str())));
33013301
}
3302+
3303+
void Fortran::lower::genOpenACCTerminator(fir::FirOpBuilder &builder,
3304+
mlir::Operation *op,
3305+
mlir::Location loc) {
3306+
if (mlir::isa<mlir::acc::ParallelOp, mlir::acc::LoopOp>(op))
3307+
builder.create<mlir::acc::YieldOp>(loc);
3308+
else
3309+
builder.create<mlir::acc::TerminatorOp>(loc);
3310+
}

flang/lib/Lower/Runtime.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include "flang/Lower/Runtime.h"
1010
#include "flang/Lower/Bridge.h"
11+
#include "flang/Lower/OpenACC.h"
1112
#include "flang/Lower/OpenMP.h"
1213
#include "flang/Lower/StatementContext.h"
1314
#include "flang/Optimizer/Builder/FIRBuilder.h"
@@ -21,6 +22,7 @@
2122
#include "flang/Runtime/stop.h"
2223
#include "flang/Runtime/time-intrinsic.h"
2324
#include "flang/Semantics/tools.h"
25+
#include "mlir/Dialect/OpenACC/OpenACC.h"
2426
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
2527
#include "llvm/Support/Debug.h"
2628
#include <optional>
@@ -37,6 +39,9 @@ static void genUnreachable(fir::FirOpBuilder &builder, mlir::Location loc) {
3739
if (parentOp->getDialect()->getNamespace() ==
3840
mlir::omp::OpenMPDialect::getDialectNamespace())
3941
Fortran::lower::genOpenMPTerminator(builder, parentOp, loc);
42+
else if (parentOp->getDialect()->getNamespace() ==
43+
mlir::acc::OpenACCDialect::getDialectNamespace())
44+
Fortran::lower::genOpenACCTerminator(builder, parentOp, loc);
4045
else
4146
builder.create<fir::UnreachableOp>(loc);
4247
mlir::Block *newBlock = curBlock->splitBlock(builder.getInsertionPoint());

flang/test/Lower/OpenACC/acc-unstructured.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ subroutine test_unstructured2(a, b, c)
5757
! CHECK: acc.parallel
5858
! CHECK: acc.loop
5959
! CHECK: fir.call @_FortranAStopStatementText
60-
! CHECK: fir.unreachable
60+
! CHECK: acc.yield
6161
! CHECK: acc.yield
6262
! CHECK: acc.yield
6363

@@ -80,7 +80,7 @@ subroutine test_unstructured3(a, b, c)
8080
! CHECK-LABEL: func.func @_QPtest_unstructured3
8181
! CHECK: acc.parallel
8282
! CHECK: fir.call @_FortranAStopStatementText
83-
! CHECK: fir.unreachable
83+
! CHECK: acc.yield
8484
! CHECK: acc.yield
8585

8686
end subroutine

flang/test/Lower/OpenACC/stop-stmt-in-region.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ subroutine test_stop_in_region1()
2929
! CHECK: %[[VAL_2:.*]] = arith.constant false
3030
! CHECK: %[[VAL_3:.*]] = arith.constant false
3131
! CHECK: %[[VAL_4:.*]] = fir.call @_FortranAStopStatement(%[[VAL_1]], %[[VAL_2]], %[[VAL_3]]) {{.*}} : (i32, i1, i1) -> none
32-
! CHECK: fir.unreachable
32+
! CHECK: acc.yield
3333
! CHECK: }
3434
! CHECK: return
3535
! CHECK: }

libc/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ add_compile_definitions(LIBC_NAMESPACE=${LIBC_NAMESPACE})
6464
# Flags to pass down to the compiler while building the libc functions.
6565
set(LIBC_COMPILE_OPTIONS_DEFAULT "" CACHE STRING "Architecture to tell clang to optimize for (e.g. -march=... or -mcpu=...)")
6666

67-
include(common_libc_tuners.cmake)
68-
6967
list(APPEND LIBC_COMPILE_OPTIONS_DEFAULT ${LIBC_COMMON_TUNE_OPTIONS})
7068

7169
# Check --print-resource-dir to find the compiler resource dir if this flag

libc/cmake/modules/LLVMLibCHeaderRules.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ function(add_gen_header target_name)
8686
get_fq_target_name(${target_name} fq_target_name)
8787
if(NOT LLVM_LIBC_FULL_BUILD)
8888
# We don't want to use generated headers if we are doing a non-full-build.
89-
add_custom_target(${fq_target_name})
89+
add_library(${fq_target_name} INTERFACE)
9090
return()
9191
endif()
9292
if(NOT ADD_GEN_HDR_DEF_FILE)

libc/cmake/modules/LLVMLibCObjectRules.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,7 @@ function(create_entrypoint_object fq_target_name)
672672
target_compile_options(${internal_target_name} BEFORE PRIVATE ${common_compile_options})
673673
target_include_directories(${internal_target_name} PRIVATE ${include_dirs})
674674
add_dependencies(${internal_target_name} ${full_deps_list})
675+
target_link_libraries(${internal_target_name} ${full_deps_list})
675676

676677
add_library(
677678
${fq_target_name}
@@ -685,6 +686,7 @@ function(create_entrypoint_object fq_target_name)
685686
target_compile_options(${fq_target_name} BEFORE PRIVATE ${common_compile_options} -DLIBC_COPT_PUBLIC_PACKAGING)
686687
target_include_directories(${fq_target_name} PRIVATE ${include_dirs})
687688
add_dependencies(${fq_target_name} ${full_deps_list})
689+
target_link_libraries(${fq_target_name} ${full_deps_list})
688690
endif()
689691

690692
set_target_properties(

0 commit comments

Comments
 (0)