- Jun 13, 2024
-
-
Peter Klausler authored
Accommodate operations with VALUE dummy arguments in the runtime support for the REDUCE intrinsic function by splitting most entry points into Reduce...Ref and Reduce...Value variants. Further work will be needed in lowering to call the ...Value entry points.
-
Timm Bäder authored
Neither isConstant() not isConstQualified() return true for these.
-
Ivy Zhang authored
Reverts llvm/llvm-project#93443
-
Fangrui Song authored
For bolt/test/runtime/X86/exceptions-pic.test, llvm-bolt seems to call emitLabel twice and the assert will fail. Work around it after 2cc4bc13
-
Vitaly Buka authored
blendvs are very similar to select, so we adjust arguments and forward them into select handler.
-
LLVM GN Syncbot authored
-
Matheus Izvekov authored
This reverts the functional elements of commit 3e78fa86 and redoes it, by fixing the true root cause of #61317. A TemplateName can be non-canonical; profiling it based on the canonical name would result in inconsistent preservation of as-written information in the AST. The true problem in #61317 is that we would not consider the methods with requirements expression which contain DTSTs as the same in relation to merging of declarations when importing modules. The expressions would never match because they contained DTSTs pointing to different redeclarations of the same class template, but since canonicalization for them was broken, their canonical types would not match either. --- No changelog entry because #61317 was already claimed as fixed in previous release.
-
Congcong Cai authored
`#` and `##` preprocessing tokens cannot be replaced by constexpr function. It should be ignored in check.
-
Ivy Zhang authored
Add an `fastMathAttr` on `arith::extf` and `arith::truncf`. If these two ops are inserted by some promotion passes (like legalize-to-f32 / emulate-unsupported-floats), they will be labeled as `FastMathFlags::contract`, denoting that they can be then `eliminated by canonicalizer`. The `elimination` can help improve performance, while may introduce some numerical differences.
-
dyung authored
-
Fangrui Song authored
Follow-up to a91c8398.
-
Fangrui Song authored
so that tools like llc can use the option as well. ca91538c is a prerequisite.
-
Fangrui Song authored
Also delete `AllowTemporaryLabels = true` from MCContext::reset: when llc supports -save-temp-labels in the next change, this assignment should be removed to support -compile-twice.
-
Jonathan Thackray authored
Cortex-A725 and Cortex-X925 are Armv9.2 AArch64 CPUs. Technical Reference Manual for Cortex-A725: https://developer.arm.com/documentation/107652/latest Technical Reference Manual for Cortex-X925: https://developer.arm.com/documentation/102807/latest
-
Jason Molenda authored
The test has a check that the static linker supports the new option, but it assumed the Xcode 16 linker also meant it was running on macOS 15 and the dynamic linker would honor dependencies flagged this way. But Xcode 16 can be run on macOS 14.5, so we need to skip the test in that combination.
-
Florian Mayer authored
Reverts llvm/llvm-project#95164 This broke a buildbot: https://lab.llvm.org/buildbot/#/builders/37/builds/35987
-
Dan Liew authored
Revert "Support `guarded_by` attribute and related attributes inside C structs and support late parsing them (#94216)" This reverts commit af0d7128. Reverting due to likely regression: https://github.com/llvm/llvm-project/pull/94216#issuecomment-2164013300
-
PiJoules authored
-
PiJoules authored
-
Adrian Prantl authored
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733
-
Louis Dionne authored
We want the PSTL implementation details to be available regardless of the Standard mode or whether the experimental PSTL is enabled. This patch guards the inclusion of the PSTL to the top-level headers that define the public API in `__numeric` and `__algorithm`.
-
Louis Dionne authored
It can otherwise timeout under some slow configurations.
-
Fangrui Song authored
After 9d0754ad ("[MC] Relax fragments eagerly") removes the assert of Offset, it is no longer useful to initialize the member to -1. Now the symbol value estimate is more precise, which leads to slight behavior change to layout-interdependency.s.
-
Eric Fiselier authored
-
Joseph Huber authored
Summary: Currently we use `(~0U)` for this definition, however the ~ operator returns a different sign, meaning that preprocessor checks against this value will fail. See https://godbolt.org/z/TrjaY1d8q where the preprocessor thinks that it's not `0xffffffff` while the static assertion thinks it is. This is because the latter does implicit conversion but the preprocessor does not. This is now consistent with other headers.
-
Florian Mayer authored
Reverts llvm/llvm-project#95039 This looks like it caused the ASan bot to fail: https://lab.llvm.org/buildbot/#/builders/168/builds/20912 Offending line was changed in this PR
-
Vitaly Buka authored
Revert "
✨ [Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy)" (#95299) Reverts llvm/llvm-project#68620 Introduce or expose a memory leak and UB, see llvm/llvm-project#68620 -
Paul Kirth authored
…f weights" #95136 Reverts #95060, and relands #86609, with the unintended code generation changes addressed. This patch implements the changes to LLVM IR discussed in https://discourse.llvm.org/t/rfc-update-branch-weights-metadata-to-allow-tracking-branch-weight-origins/75032 In this patch, we add an optional field to MD_prof meatdata nodes for branch weights, which can be used to distinguish weights added from llvm.expect* intrinsics from those added via other methods, e.g. from profiles or inserted by the compiler. One of the major motivations, is for use with MisExpect diagnostics, which need to know if branch_weight metadata originates from an llvm.expect intrinsic. Without that information, we end up checking branch weights multiple times in the case if ThinLTO + SampleProfiling, leading to some inaccuracy in how we report MisExpect related diagnostics to users. Since we change the format of MD_prof metadata in a fundamental way, we need to update code handling branch weights in a number of places. We also update the lang ref for branch weights to reflect the change.
-
Louis Dionne authored
They were always intended to be in that namespace but I was trying to keep changes orthogonal.
-
Jay Foad authored
Implement MVT::getVectorElementType and MVT::getVectorMinNumElements with table lookup instead of switch. This speeds up "check-llvm-codegen-amdgpu" by about 7% in my Release build.
-
Simon Pilgrim authored
As we allow these nodes to be created pre-legalization, we can't rely on them having a simple VT Fixes #95278
-
Simon Pilgrim authored
-
Kazu Hirata authored
This patch changes the type of ValueData to std::vector<InstrProfValueData> so that, in a follow-up patch, we can teach getValueForSite to return ArrayRef<InstrProfValueData>. Currently, a typical traversal over the value data looks like: uint32_t NV = Func.getNumValueDataForSite(VK, I); std::unique_ptr<InstrProfValueData[]> VD = Func.getValueForSite(VK, I); for (uint32_t V = 0; V < NV; V++) Do something with VD[V].Value and/or VD[V].Count; Note that we need to call getNumValueDataForSite and getValueForSite separately. If getValueForSite returns ArrayRef<InstrProfValueData> in the future, then we'll be able to do something like: for (const auto &V : Func.getValueForSite(VK, I)) Do something with V.Value and/or V.Count; If ArrayRef<InstrProfValueData> directly points to ValueData, then getValueForSite won't need to allocate memory with std::make_unique. Now, switching to std::vector requires us to update several places: - sortByTargetValues switches to llvm::sort because we don't need to worry about sort stability. - sortByCount retains sort stability because std::list::sort also performs stable sort. - merge builds another array and move it back to ValueData to avoid a potential quadratic behavior with std::vector::insert into the middle of a vector. -
Pierre d'Herbemont authored
Support `guarded_by` attribute and related attributes inside C structs and support late parsing them (#94216) This fixes #20777. Previously the `guarded_by`, `pt_guarded_by`, `acquired_after`, and `acquired_before` attributes were only supported inside C++ classes or top level C/C++ declaration. This patch allows these attributes to be added to struct members in C. These attributes have also now support experimental late parsing. This is off by default but can be enabled by passing `-fexperimental-late-parse-attributes`. This is useful for referring to a struct member after the annotated member. E.g. ``` struct Example { int a_value_defined_before __attribute__ ((guarded_by(a_mutex))); struct Mutex *a_mutex; }; ``` Patch by Pierre d'Herbemont (@pdherbemont) -
Iman Hosseini authored
* Add reductionOperands and reductionAttrs to cuf's KernelOp. * Parsing is already working and the tree has the info: here I make the Bridge emit the updated KernelOp with reduction information added. * Check |reductionAttrs| = |reductionOperands| in verifier * Add a test @clementval @vzakhari --------- Co-authored-by:
Iman Hosseini <imanh@nvidia.com> Co-authored-by:
Valentin Clement (バレンタイン クレメン) <clementval@gmail.com>
-
Simon Pilgrim authored
Fixes #95271
-
Peiming Liu authored
**DO NOT MERGE** until https://github.com/llvm/llvm-project/pull/89003
-
Craig Topper authored
-
LLVM GN Syncbot authored
-
Kazu Hirata authored
getValueForSite computes the total count -- the total number of times a given value site is visited. The problem is that, excluding tests, annotateValueSite is the only place that needs the total count. This patch moves the total count computation to annotateValueSite.
-