[clang] [llvm] [PPC] Implement BCD assist builtins (PR #101390)

2024-08-01 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast approved this pull request. LGTM; please give other reviewers some time before committing. Thanks! https://github.com/llvm/llvm-project/pull/101390 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:

[clang] [llvm] [PPC] Implement BCD assist builtins (PR #101390)

2024-08-02 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,58 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc64le-unknown-linux -O2 -target-cpu pwr7 \ +// RUN: -emit-llvm %s -o - | FileCheck %s

[clang] [llvm] [PowerPC] Fix codegen for transparent_union function params (PR #101738)

2024-08-04 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: With `--target=powerpc-unknown-linux-gnu`, the union type is still being used with `signext` (causing the IR verifier to be unhappy) for the following: ```c typedef union __attribute__((__transparent_union__)) U { signed _BitInt(17) x; } U; __attribute__((__weak_

[clang] [llvm] [PowerPC] Fix codegen for transparent_union function params (PR #101738)

2024-08-05 Thread Hubert Tong via cfe-commits
@@ -65,6 +65,10 @@ CGCXXABI::RecordArgABI getRecordArgABI(QualType T, CGCXXABI &CXXABI); bool classifyReturnType(const CGCXXABI &CXXABI, CGFunctionInfo &FI, const ABIInfo &Info); +// For transparent union types, return the type of the first element. +/

[clang] [llvm] [PowerPC] Fix codegen for transparent_union function params (PR #101738)

2024-08-05 Thread Hubert Tong via cfe-commits
@@ -393,6 +401,18 @@ CharUnits PPC32_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const { return CharUnits::fromQuantity(4); } +ABIArgInfo PPC32_SVR4_ABIInfo::classifyArgumentType(QualType Ty) const { + bool IsTransparentUnion; + Ty = useFirstFieldIfTransparentUnion(T

[clang] [llvm] [PPC] Implement BCD assist builtins (PR #101390)

2024-08-05 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,58 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc64le-unknown-linux -O2 -target-cpu pwr7 \ +// RUN: -emit-llvm %s -o - | FileCheck %s

[clang] [llvm] [PPC] Implement BCD assist builtins (PR #101390)

2024-08-05 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,75 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 +// REQUIRES: powerpc-registered-target +// RUN: %clang_cc1 -triple powerpc64le-unknown-linux -O2 -target-cpu pwr7 \ +// RUN: -emit-llvm %s -o - | FileCheck %s

[clang] [Clang] Reuse tail-padding for more types that are not POD for the purpose of layout (PR #90462)

2024-08-08 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > @hubert-reinterpretcast There were none, now I've added some: > https://github.com/llvm/llvm-project/blob/cf8be1bac0eb37caaaecd47cb463ca58ee0fbe59/clang/test/Layout/itanium-padded-bit-field.cpp Thanks. I am a bit concerned that the fix to match the Itanium ABI on

[clang] f635bcd - NFC: Pre-commit test: -Wpointer-sign with plain char to [un]signed char

2021-01-11 Thread Hubert Tong via cfe-commits
Author: Hubert Tong Date: 2021-01-11T18:41:14-05:00 New Revision: f635bcd16105a0a01eefa2c69a71cd103dedaddd URL: https://github.com/llvm/llvm-project/commit/f635bcd16105a0a01eefa2c69a71cd103dedaddd DIFF: https://github.com/llvm/llvm-project/commit/f635bcd16105a0a01eefa2c69a71cd103dedaddd.diff L

[clang] c6ffe4d - [clang] Fix message text for `-Wpointer-sign` to account for plain char

2021-01-11 Thread Hubert Tong via cfe-commits
Author: Hubert Tong Date: 2021-01-11T18:41:14-05:00 New Revision: c6ffe4d76fbf6ae505c0abccaf29017414265e32 URL: https://github.com/llvm/llvm-project/commit/c6ffe4d76fbf6ae505c0abccaf29017414265e32 DIFF: https://github.com/llvm/llvm-project/commit/c6ffe4d76fbf6ae505c0abccaf29017414265e32.diff L

[clang] [llvm] [PowerPC] Fix codegen for transparent_union function params (PR #101738)

2024-08-19 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,67 @@ +// RUN: %clang_cc1 -triple powerpc64le-unknown-linux -O2 -target-cpu pwr7 \ +// RUN: -emit-llvm -fshort-enums %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-64 +// RUN: %clang_cc1 -triple powerpc64-unknown-linux -O2 -target-cpu pwr7 \ +// RUN: -emit-llv

[clang] [llvm] [PowerPC] Fix codegen for transparent_union function params (PR #101738)

2024-08-19 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,123 @@ +; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux -mcpu=pwr7 \ hubert-reinterpretcast wrote: I am not sure the machine-codegen-from-IR test is necessary. We only changed the Clang front-end IR codegen. It stands to reason th

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -3,12 +3,18 @@ /// 4.7 enables cfg_checksum. /// 4.8 (default, compatible with gcov 7) emits the exit block the second. // RUN: rm -rf %t && mkdir %t && cd %t -// RUN: %clang_cc1 -emit-llvm -disable-red-zone -coverage-data-file=/dev/null -coverage-version='304*' %s -o - | \

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -781,6 +798,9 @@ serializeValueProfDataFrom(ValueProfRecordClosure *Closure, #define INSTR_PROF_COVNAME_COFF ".lcovn" #define INSTR_PROF_ORDERFILE_COFF ".lorderfile$M" +// TODO: Placeholder for Windows. We need to revise when we upstream this. hubert-reinte

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -1,9 +1,15 @@ ;; Ensure __llvm_gcov_(writeout|reset|init) have the correct !kcfi_type ;; with integer normalization. ; RUN: mkdir -p %t && cd %t -; RUN: opt < %s -S -passes=insert-gcov-profiling | FileCheck %s +; RUN: opt < %s -S -passes=insert-gcov-profiling \ +; RUN: -mtr

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -1,7 +1,13 @@ ; RUN: mkdir -p %t && cd %t -; RUN: opt < %s -S -passes=insert-gcov-profiling | FileCheck %s +; RUN: opt < %s -S -passes=insert-gcov-profiling \ +; RUN: -mtriple=x86_64-unknown-linux-gnu | FileCheck \ +; RUN: --check-prefixes=CHECK,CHECK-ELF %s

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -2962,13 +2964,34 @@ void PPCAIXAsmPrinter::emitPGORefs(Module &M) { } } +void PPCAIXAsmPrinter::emitGCOVRefs() { + if (!OutContext.hasXCOFFSection( + "__llvm_gcov_ctr_section", + XCOFF::CsectProperties(XCOFF::XMC_RW, XCOFF::XTY_SD))) +return; + +

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -914,6 +918,7 @@ bool GCOVProfiler::emitProfileNotes( GlobalVariable *Counters = new GlobalVariable( *M, CounterTy, false, GlobalValue::InternalLinkage, Constant::getNullValue(CounterTy), "__llvm_gcov_ctr"); +Counters->setSection("__ll

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -1,8 +1,14 @@ ;; Ensure __llvm_gcov_(writeout|reset|init) have !kcfi_type with KCFI. ; RUN: mkdir -p %t && cd %t -; RUN: opt < %s -S -passes=insert-gcov-profiling | FileCheck %s +; RUN: opt < %s -S -passes=insert-gcov-profiling \ +; RUN: -mtriple=x86_64-unknown-linux-gnu | F

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -2962,13 +2964,34 @@ void PPCAIXAsmPrinter::emitPGORefs(Module &M) { } } +void PPCAIXAsmPrinter::emitGCOVRefs() { + if (!OutContext.hasXCOFFSection( + "__llvm_gcov_ctr_section", + XCOFF::CsectProperties(XCOFF::XMC_RW, XCOFF::XTY_SD))) +return; + +

[clang] [compiler-rt] [llvm] [PGO] Initialize GOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
@@ -781,6 +798,9 @@ serializeValueProfDataFrom(ValueProfRecordClosure *Closure, #define INSTR_PROF_COVNAME_COFF ".lcovn" #define INSTR_PROF_ORDERFILE_COFF ".lorderfile$M" +// TODO: Placeholder for Windows. We need to revise when we upstream this. hubert-reinte

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-01 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/108570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-04 Thread Hubert Tong via cfe-commits
@@ -914,6 +918,9 @@ bool GCOVProfiler::emitProfileNotes( GlobalVariable *Counters = new GlobalVariable( *M, CounterTy, false, GlobalValue::InternalLinkage, Constant::getNullValue(CounterTy), "__llvm_gcov_ctr"); +const llvm::Triple &Triple

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-04 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/108570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-04 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,129 @@ +; Tests if the __llvm_gcov_ctr section contains a .ref pseudo-op +; referring to the __llvm_covinit section. +; RUN: llc < %s | FileCheck --check-prefixes=CHECK,CHECK-RW %s +; RUN: llc -mxcoff-roptr < %s | FileCheck --check-prefixes=CHECK,CHECK-RO %s + +target d

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-04 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,129 @@ +; Tests if the __llvm_gcov_ctr section contains a .ref pseudo-op +; referring to the __llvm_covinit section. +; RUN: llc < %s | FileCheck --check-prefixes=CHECK,CHECK-RW %s +; RUN: llc -mxcoff-roptr < %s | FileCheck --check-prefixes=CHECK,CHECK-RO %s + +target d

[libunwind] [libunwind][AIX] Call dlclose only when dlsym() fails (PR #112768)

2024-10-18 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast approved this pull request. LGTM; thanks! https://github.com/llvm/llvm-project/pull/112768 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][CodeGen] Zero init unspecified fields in initializers in C (PR #97121)

2024-10-16 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: @AaronBallman, considering the concern of potential performance regressions ("unnecessary" initialization of automatic-storage duration objects), should it be the case that there is no option control? It was also the case that the prior Clang behaviour (with `-ft

[clang] [clang][CodeGen] Zero init unspecified fields in initializers in C (PR #97121)

2024-10-16 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: Handling for local variables (not initialized with `{}`). The performance impact of guaranteeing the extension is artificially reduced because the baseline code generation uses `memset` over the entire union when the size is large, but initializing the bytes after

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-16 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,138 @@ +; Tests if the __llvm_gcov_ctr section contains a .ref pseudo-op +; referring to the __llvm_covinit section. +; RUN: llc < %s | FileCheck --check-prefixes=CHECK,CHECK-RW %s +; RUN: llc -mxcoff-roptr < %s | FileCheck --check-prefixes=CHECK,CHECK-RO %s + +target d

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-16 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast approved this pull request. LGTM with minor comment; thanks! https://github.com/llvm/llvm-project/pull/108570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listi

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-16 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/108570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind][AIX] Remove weak declaration "__xlcxx_personality_v0" (PR #112436)

2024-10-16 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast approved this pull request. LGTM! Thanks! https://github.com/llvm/llvm-project/pull/112436 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [ItaniumMangle] Fix `cp` versus `cl` call expression mangling for block scope (PR #114884)

2024-11-04 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > Is it worth adding `ClangABICompat` support for this? (Do we think this will > affect any real code, or is this more just formal correctness?) The change was motivated by formal correctness (and the work led to the discovery of CWG 2946). I have some doubts that

[clang] [ItaniumMangle] Fix `cp` versus `cl` call expression mangling for block scope (PR #114884)

2024-11-04 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > Can we find a way to re-use the code between this and the actual lookup code? > Feels like we could have some sort of predicate like > `doesLookupResultSuppressADL(NamedDecl*)`. Or are we forced to use slightly > different predicates for some compatibility reaso

[clang] [clang] constexpr built-in fma function. (PR #113020)

2024-10-31 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast commented: Needs tests for rounding cases and observance of rounding modes. https://github.com/llvm/llvm-project/pull/113020 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bi

[clang] [clang] constexpr built-in fma function. (PR #113020)

2024-10-31 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: A problem with the current patch is that it does not evaluate, even in constant expression contexts, cases that require rounding: ```cpp extern constexpr float onepluszeroeps = __builtin_fmaf(__FLT_EPSILON__, .0f, 1.f); extern constexpr float oneplushalfeps = __bui

[libunwind] [libunwind][AIX] Remove weak declaration "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/112436 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind][AIX] Remove weak declaration "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: @xingxue-ibm, I edited the PR description text. Please check my edits. https://github.com/llvm/llvm-project/pull/112436 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinf

[libunwind] [libunwind][AIX] Remove weak declaration "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/112436 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,129 @@ +; Tests if the __llvm_gcov_ctr section contains a .ref pseudo-op +; referring to the __llvm_covinit section. +; RUN: llc < %s | FileCheck --check-prefixes=CHECK,CHECK-RW %s +; RUN: llc -mxcoff-roptr < %s | FileCheck --check-prefixes=CHECK,CHECK-RO %s + +target d

[libunwind] [libunwind][AIX] Remove weak definition "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -2126,42 +2125,34 @@ bool UnwindCursor::getInfoFromTBTable(pint_t pc, R ®isters) { // function __xlcxx_personality_v0(), which is the personality for the state // table and is exported from libc++abi, is directly assigned as the // handler here. When a legacy X

[libunwind] [libunwind][AIX] Remove weak definition "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/112436 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind][AIX] Remove weak definition "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -2126,42 +2125,34 @@ bool UnwindCursor::getInfoFromTBTable(pint_t pc, R ®isters) { // function __xlcxx_personality_v0(), which is the personality for the state // table and is exported from libc++abi, is directly assigned as the // handler here. When a legacy X

[libunwind] [libunwind][AIX] Remove weak definition "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -2126,42 +2125,34 @@ bool UnwindCursor::getInfoFromTBTable(pint_t pc, R ®isters) { // function __xlcxx_personality_v0(), which is the personality for the state // table and is exported from libc++abi, is directly assigned as the // handler here. When a legacy X

[libunwind] [libunwind][AIX] Remove weak definition "__xlcxx_personality_v0" (PR #112436)

2024-10-15 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast commented: I think a small test case could be added with a `int main(void) {}` C program linked with -`brtl` and `LDR_PRELOAD`/`LDR_PRELOAD64` set to `libunwind.a(libunwind.so.1)`. https://github.com/llvm/llvm-project/pull/112436 __

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -8,14 +8,19 @@ target triple = "powerpc-ibm-aix" ; CHECK-RW: .csect __llvm_covinit[RW],3 ; CHECK-RO: .csect __llvm_covinit[RO],3 -; CHECK: .vbyte 4, __llvm_gcov_writeout[DS] -; CHECK-NEXT:.vbyte 4, __llvm_gcov_reset[DS] -; CHECK: __llvm_gcov_ctr.1: +; CHECK-NE

[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

2024-10-15 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,129 @@ +; Tests if the __llvm_gcov_ctr section contains a .ref pseudo-op +; referring to the __llvm_covinit section. +; RUN: llc < %s | FileCheck --check-prefixes=CHECK,CHECK-RW %s +; RUN: llc -mxcoff-roptr < %s | FileCheck --check-prefixes=CHECK,CHECK-RO %s + +target d

[clang] [llvm] [clang] Implement pragma clang section on COFF targets (PR #112714)

2024-11-05 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/112714 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang] Implement pragma clang section on COFF targets (PR #112714)

2024-11-05 Thread Hubert Tong via cfe-commits
@@ -2378,13 +2394,28 @@ MCSection *TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal( StringRef SectionName = GO->getSection(); hubert-reinterpretcast wrote: See `report_fatal_error` above. I think the new code should be moved up so that `SectionName` i

[clang] [llvm] [clang] Implement pragma clang section on COFF targets (PR #112714)

2024-11-05 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast commented: There doesn't seem to be changes to handle the text section cases? https://github.com/llvm/llvm-project/pull/112714 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
@@ -1121,20 +1121,24 @@ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// This check is only applicable to AIX targets. +// AIX-specific link behavior requires `-latomi

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
@@ -1121,20 +1121,24 @@ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// This check is only applicable to AIX targets. +// AIX-specific link behavior requires `-latomi

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast requested changes to this pull request. https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,18 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// This test verifies that the linker doesn

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -338,6 +338,13 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-lpthread"); } const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); + +// Required for 64-bit atomic operations used in sanitizer runtimes +//

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -338,6 +338,13 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-lpthread"); } const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); + +// Required for 64-bit atomic operations used in sanitizer runtimes +//

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast requested changes to this pull request. @honeygoyal, I do not believe that the prerequisite changes from IBM's downstream are present to support the Clang driver test being added in this PR. https://github.com/llvm/llvm-project/pull/125388

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -338,6 +338,13 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-lpthread"); } const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); + +// Required for 64-bit atomic operations used in sanitizer runtimes +//

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -338,6 +338,13 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-lpthread"); } const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); + +// Required for 64-bit atomic operations used in sanitizer runtimes +//

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/125388 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-06 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,19 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %clang -target powerpc-ibm-aix -m32

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,21 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %if target={{.*aix.*}} %{ \ +// RUN

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,21 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %if target={{.*aix.*}} %{ \ +// RUN

[clang] [compiler-rt] [Sanitizers] the access size (8 bytes) exceeds the max lock-free size (4 bytes) for 32-bit (PR #125388)

2025-02-03 Thread Hubert Tong via cfe-commits
@@ -1120,3 +1120,21 @@ // RUN:-c \ // RUN: | FileCheck --check-prefixes=CHECK-K-UNUSED %s // CHECK-K-UNUSED: clang: warning: -K: 'linker' input unused [-Wunused-command-line-argument] + +// Check No Sanitizer on 32-bit AIX +// RUN: %if target={{.*aix.*}} %{ \ +// RUN

[clang] [clang] Fix non-deterministic infinite recursion... (PR #118288)

2024-12-20 Thread Hubert Tong via cfe-commits
Alejandro =?utf-8?q?Álvarez_Ayllón?Message-ID: In-Reply-To: hubert-reinterpretcast wrote: > LLVM patch releases cannot break API or ABI compatibility Thanks @nikic for the explanation. I thought you meant ABI compatibility in the "user program" sense. https://github.com/llvm/llvm-project/pul

[clang] [clang] Fix non-deterministic infinite recursion... (PR #118288)

2024-12-19 Thread Hubert Tong via cfe-commits
Alejandro =?utf-8?q?Álvarez_Ayllón?Message-ID: In-Reply-To: hubert-reinterpretcast wrote: > This is an ABI-breaking fix, so it cannot be backported in this form. @nikic, can you explain this statement? Is this something that can be documented in the release notes: https://github.com/llvm/llv

[clang] [Clang] Reapply CWG2369 "Ordering between constraints and substitution" (PR #122423)

2025-01-21 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > Can we have this behavior guarded by a compiler option? That depends on the rationale: 1. Allow opt in to the resolution of CWG2369 because it is wanted (despite potentially-temporary fallout); or 2. Require opt in to the resolution of CWG2369 because "it causes

[clang] Fix extra parenthesis in diagnostic (PR #122055)

2025-01-07 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast created https://github.com/llvm/llvm-project/pull/122055 Following https://github.com/llvm/llvm-project/pull/120380, `err_pack_expansion_length_conflict` has one close paren too many. Remove the extra parenthesis. >From ecff595a1e753a1c897a0f48e306bfe3

[clang] [profile] Add a clang option -fprofile-continuous that enables continuous instrumentation profiling mode (PR #124353)

2025-02-08 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast commented: @w2yehia, I suggest adding an update to the Release Notes sooner rather than later: https://github.com/llvm/llvm-project/blob/main/clang/docs/ReleaseNotes.rst https://github.com/llvm/llvm-project/pull/124353 _

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-03-24 Thread Hubert Tong via cfe-commits
@@ -0,0 +1,5 @@ +// REQUIRES: systemz-registered-target hubert-reinterpretcast wrote: Should there be diagnostics (and corresponding testing) for ignored/meaningless uses of `_Export`? e.g., ```cpp typedef int _Export ty; ty x; int f(int _Export x); static int

[clang] [SystemZ][z/OS] Add visibility features for z/OS (eg. _Export, pragma export) (PR #111035)

2025-04-05 Thread Hubert Tong via cfe-commits
@@ -4456,6 +4456,12 @@ void Parser::ParseDeclarationSpecifiers( isInvalid = DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID); break; +case tok::kw__Export: + // If we find kw__Export, it is being applied to a var or function + // This will be handled

[clang] [C99] Remove the tgmath.h header (PR #135236)

2025-04-10 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > Today, that's no longer the case. IBM's AIX ships a `tgmath.h` that only works with the IBM non-Clang-based XL compiler. https://github.com/llvm/llvm-project/pull/135236 ___ cfe-commits mailing list cfe-commits@lists.l

[clang] [Clang driver] Diagnose `-maix-shared-lib-tls-model-opt` on wrong targets (PR #130865)

2025-03-15 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast closed https://github.com/llvm/llvm-project/pull/130865 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > IIRC this feature is orthogonal to GCC bound member functions. `declcall` > with a virtual method just returns a pmf, and we still need to perform vtable > lookup at the callsite: https://compiler-explorer.com/z/YrT3nPTEz Try `declcall(p->B::virtual_method())`?:

[clang] [clang][Driver] Support passing arbitrary args to `-cc1as` with `-Xclangas`. (PR #100714)

2025-04-22 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: @alexrp, the test added fails on AIX: https://lab.llvm.org/buildbot/#/builders/64/builds/3074 Clang on AIX does not use the integrated assembler for assembly files. https://github.com/llvm/llvm-project/pull/100714 ___ cfe

[clang] [clang][Driver] Support passing arbitrary args to `-cc1as` with `-Xclangas`. (PR #100714)

2025-04-22 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: Passing `-integrated-as` does not help because it is used on AIX to control whether object files are generated directly or not (for C/C++ source). > Or should we just outright disable the test on AIX (and perhaps other > affected platforms)? XFAIL would be good.

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-04-22 Thread Hubert Tong via cfe-commits
=?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier Message-ID: In-Reply-To: @@ -10170,6 +10170,8 @@ def warn_format_bool_as_character : Warning< "using '%0' format specifier, but argument has boolean value">, InGroup; def note_format_string_defined : Note<

[clang] [C99] Remove the tgmath.h header (PR #135236)

2025-04-10 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > We could add a builtin matching the GCC `__builtin_tgmath` builtin and remove > our header for at least those targets, though. Clang would either need to change its `__GNUC__` value or the glibc header would need to add a `__has_builtin` query. Oddly enough, `__

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-04-15 Thread Hubert Tong via cfe-commits
@@ -10170,6 +10170,8 @@ def warn_format_bool_as_character : Warning< "using '%0' format specifier, but argument has boolean value">, InGroup; def note_format_string_defined : Note<"format string is defined here">; +def note_format_string_evaluated_to : Note< + "format stri

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-04-16 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/135864 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-04-15 Thread Hubert Tong via cfe-commits
@@ -238,3 +246,69 @@ void f(Scoped1 S1, Scoped2 S2) { } #endif + +#if __cplusplus >= 202000L +class my_string { + char *data; + unsigned size; + +public: + template + constexpr my_string(const char (&literal)[N]) { +data = new char[N+1]; +for (size = 0; size < N; +

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-04-22 Thread Hubert Tong via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: https://github.com/hubert-reinterpretcast edited https://github.com/llvm/llvm-project/pull/135864 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.l

[clang] [llvm] [Clang][C++23] Core language changes from P1467R9 extended floating-point types and standard names. (PR #78503)

2025-04-22 Thread Hubert Tong via cfe-commits
@@ -132,6 +133,70 @@ template <> struct llvm::DenseMapInfo { return LHS == RHS; } }; +constexpr unsigned CXX23FloatRankToIndex(clang::BuiltinType::Kind Kind) { + switch (Kind) { + case clang::BuiltinType::Float16: +return 0; + case clang::BuiltinType::BFloat16: +

[clang] [C99] Remove the tgmath.h header (PR #135236)

2025-04-10 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: Does it make sense to keep the tests for all platforms then? If we decide to restrict the testing to the platforms expected to use the Clang-provided header, then I think it should at least be staged so that there is some CI cycle where the tests are run regardles

[clang] [C99] Remove the tgmath.h header (PR #135236)

2025-04-10 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > Thank you for pointing that out! So IBM still needs Clang to vend this for > now, I take it? Is IBM planning to update their tgmath.h so that it works > with the Clang-based XL compiler (so we can eventually remove Clang's)? The road to being able to retain the

[clang] [C99] Remove the tgmath.h header (PR #135236)

2025-04-10 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > I wonder if we can put it into an AIX-only (plus whatever other targets still > need it) include directory, though, so we only find and use it on the targets > where it's necessary? That, or, generally `#include_next` except for certain platforms (like AIX)? ht

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > We used this extension to improve virtual function calling performance, there > are simple and small virtual functions which are frequently called and can > not be eliminated and it is in a delegation thus compiler can not optimize. > > [toplingdb](https://githu

[clang] [clang] Constant-evaluate format strings as last resort (PR #135864)

2025-05-07 Thread Hubert Tong via cfe-commits
@@ -238,3 +246,69 @@ void f(Scoped1 S1, Scoped2 S2) { } #endif + +#if __cplusplus >= 202000L +class my_string { + char *data; + unsigned size; + +public: + template + constexpr my_string(const char (&literal)[N]) { +data = new char[N+1]; +for (size = 0; size < N; +

[clang] [Clang codegen][PPC] Produce AIX-specific "target features" only for AIX (PR #130864)

2025-03-13 Thread Hubert Tong via cfe-commits
https://github.com/hubert-reinterpretcast closed https://github.com/llvm/llvm-project/pull/130864 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

<    1   2   3   4   5   >