- Aug 01, 2023
-
-
Alexander Yermolovich authored
Clang can generate DW_TAG_inlined_subroutine with low_pc 0. With split dwarf this led to range offset being a negative number. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D156742
-
wren romano authored
Depends On D156001 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D156010
-
Steven Wu authored
This reverts commit c56514f2. This commit adds global state that is shared between clang driver and clang cc1, which is not correct when clang is used with `-fno-integrated-cc1` option (no integrated cc1). The -march and -mtune option needs to be properly passed through cc1 command-line and stored in TargetInfo.
-
Roland McGrath authored
This prevents -Wmissing-braces warnings. Reviewed By: michaelrj, Caslyn Differential Revision: https://reviews.llvm.org/D156629
-
Matt Arsenault authored
This should be approximately first and run with other module passes. https://reviews.llvm.org/D155987
-
Matt Arsenault authored
-
Amir Ayupov authored
BOLT-ERROR and BOLT-WARNING messages are output to stderr which is not captured by piping to FileCheck. Redirect stderr to stdout to fix that in tests. Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D156340
-
Matt Arsenault authored
Don't understand why this would either be OK or necessary, but doesn't appear to happen in any tests. This was introduced way back in 76e66c31 https://reviews.llvm.org/D156265
-
Matt Arsenault authored
For the purpose of the test it works as well to have a use after the copy itself.
-
Matt Arsenault authored
-
Peter Klausler authored
This gets our -Werror build working again. Differential Revision: https://reviews.llvm.org/D156745
-
Alexey Bader authored
Compile units are not left explicitly if they have const global expression. They should be left if that const global is used in a function that is contained in extracted module. Signed-off-by:
Mikhail Lychkov <mikhail.lychkov@intel.com> Differential Revision: https://reviews.llvm.org/D131179
-
Johannes Doerfert authored
The test run fine on my AMD GPU machine, we should verify them on others too and put them into our regular testing. Not testing O1/2/3 is really bad and not testing all architecturs is similarly problematic. Differential Revision: https://reviews.llvm.org/D148576
-
Johannes Doerfert authored
-
Chia-hung Duan authored
Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156586
-
Chia-hung Duan authored
This is only applied to SizeClassAllocator64 which has single region. In SizeClassAllocator32, the region size has to be equal to the group size. Differential Revision: https://reviews.llvm.org/D156740
-
Amir Ayupov authored
Use short loop instead of duplicating the code for setHasProfileAvailable. Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D154749
-
wren romano authored
Depends On D156001 Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D156007
-
Peter Klausler authored
When a generic interface X has a specific procedure Y that is also a specific procedure of another generic with the same name (Y), ensure that generic resolution of a call to X that resolves to Y points to the symbol of the specific procedure Y, not the generic. Differential Revision: https://reviews.llvm.org/D156341
-
wren romano authored
Depends On D155999 Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D156001
-
Tamir Duberstein authored
This patch contains a number of uncontroversial changes: - Replace all uses of `errs`, `assert`, `llvm_unreachable` with `report_fatal_error` with informative error strings. - Replace calls to `fail` in loops with at most one call per error instance. Previously a function with 19 arguments would log "too many args" 14 times. This was not helpful. - Change one `if (..) switch ...` to `if (..) { switch ...`. The added brace is consistent with a near-identical switch immediately above. - Elide one `SDValue` copy by using a reference rather than value. This is consistent with a variable declared immediately before it. Reviewed By: yonghong-song Differential Revision: https://reviews.llvm.org/D156136 -
Valentin Clement authored
The OpenACC 3.3 specification does not allow the `zero` modifier on the `create` clause used with the declare directive. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D156703
-
wren romano authored
Previously, the commented out code in the `DimLvlMap` ctor would result in `VarSet::add` raising an OOB error; which should be impossible because the ctor asserted `DimLvlMap::isWF` which ensures that all variables occuring in the map are within bounds for the ranks. The root cause of that bug was the `VarSet` ctor using `SmallBitVector::reserve` which does not actually change the size of the bitvectors (hence the subsequent OOB). This is corrected by using any of `SmallBitVector::resize`, the move-ctor, or the copy-ctor. Since the default-initialized bitvectors being modified/overwritten have size zero, there shouldn't be any significant performance difference between these three implementations. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D155999
-
Peter Klausler authored
The prescanner performs implicit line continuation when it looks like the parenthesized arguments of a call to a function-like macro may span multiple lines. In an attempt to work more like a Fortran-oblivious C preprocessor, the prescanner will act as if the following lines had been continuations so that the function-like macro could be invoked. This still seems like a good idea, but a recent bug report on LLVM's GitHub issue tracker shows one way in which it could trigger inadvertently and mess up a program. So this patch makes the conditions for implicit line continuation much more strict. First, the leading parenthesis has to have been preceded by an identifier that's known to be a macro name. (It doesn't have to be a function-like macro, since it's possible for a keyword-like macro to expand to the name of a function-like macro.) Second, no macro definition can ever have had unbalanced parentheses in its replacement text. Also cleans up some parenthesis recognition code to fix some issues found in testing, so that a token with leading or trailing spaces can still be recognized as a parenthesis or comma. Fixes https://github.com/llvm/llvm-project/issues/63844. Differential Revision: https://reviews.llvm.org/D155499
-
spupyrev authored
Fixing build after https://reviews.llvm.org/D153039 Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D156734
-
Matt Arsenault authored
-
Amir Ayupov authored
We identify instructions to be instrumented based on Offset annotation. BOLT "expands" conditional tail calls into a conditional jump to a basic block with unconditional tail call. Move Offset annotation from former CTC to the tail call. For expanded CTC we keep Offset attached to the original instruction which is converted into a regular conditional jump, while leaving the newly created tail call without an Offset annotation. This leads to attempting the instrumentation of the conditional jump which points to the basic block with an inherited input offset thus creating an invalid edge description. At the same time, the newly created tail call is skipped entirely which means we're not creating a call description for it. If we instead reassign Offset annotation from the conditional jump to the tail call we fix both issues. The conditional jump will be skipped not creating an invalid edge description, while tail call will be handled properly (unformly with regular calls). Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D156389
-
Augie Fackler authored
Three RUN lines mistakenly tried to write to the source dir instead of to a temp dir.
-
Amir Ayupov authored
Work around the issue of multiple profiles per function. Can happen with a stale profile which has separate profiles that in a new binary got merged and became aliases. Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D156644
-
-
Johannes Doerfert authored
It was `inaccessiblemem: readwrite` before, no need for the read. No real benefit is expected but it can help debugging and other efforts. Differential Revision: https://reviews.llvm.org/D156478
-
Johannes Doerfert authored
Traps will not read/write the program state but they need an effect for preservation, similar to `llvm.assume`. We really want a new memory kind for that (see TODO), but for now `inaccessiblemem: write` is better than any possible effect. Differential Revision: https://reviews.llvm.org/D156476
-
Johannes Doerfert authored
Differential Revision: https://reviews.llvm.org/D156729
-
Johannes Doerfert authored
The new ompx.h header will give us a place to put extensions. The first are 3D getters for the common cuda values: `{threadId,threadDim,blockId,blockDim}.{x,y,z}` Differential Revision: https://reviews.llvm.org/D156501 -
Johannes Doerfert authored
This change makes the naming more consistent, I hope.
-
Alexey Bataev authored
If the actual instruction bitwidth does not match its original size, need to reestimate the casting opcode, the compiler cannot rely on the one, provided in the instruction.
-
David Green authored
This adds some basic handling for bf16 constants, attempting to treat them a lot like fp16 constants where it can. Zero immediates get lowered to FMOVH0, others either get lowered to FMOVWHr(MOVi32imm) or use FMOVHi if they can. Without fp16 they get expanded. This may not always be optimal, but fixes a gap in our lowering. See llvm/test/CodeGen/AArch64/f16-imm.ll for the equivalent fp16 test. Differential Revision: https://reviews.llvm.org/D156649
-
Michael Jones authored
In preparation for https://reviews.llvm.org/D156630 this patch cleans up all integer size and sign conversion warnings in printf. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D156723
-
Quinn Dawkins authored
Includes `inferConvolutionDims` based on the existing helper for contractions, `inferContractionDims`. This allows matching and identifying the relevant dims for a convolution sub-computation of a linalg operation. Additionally adds stride/dilations inference to the captures and convolution interface matcher. Differential Revision: https://reviews.llvm.org/D156080
-
Chia-hung Duan authored
Cached block may have nearly aligned address for a certain alignment so that we don't have to round up the size in advance. The rounding should only happen at determing the availability of a cached block. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156582
-