Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Created using spr 1.3.4
[skip ci]
|
|
|
|
Android supports per thread stack protectors that are individually
managed and
initialized, which can provide stronger protections than using the
global stack
protector cookie. This patch matches the convention for other
architectures
targeting Android platforms.
|
|
This was left out from https://github.com/llvm/llvm-project/commit/257013e4f5cbdf644646da9ec3d60d6209c9bf25
|
|
This fixes https://lab.llvm.org/buildbot/#/builders/268/builds/13925,
which somehow doesn't show in any of my local builds.
|
|
This reverts commit c4a9a374749deb5f2a932a7d4ef9321be1b2ae5d.
This and the followup patch keep hitting an assert I wrote on the build
bots in a way that isn't clear. Reverting so I can fix it without a
rush.
|
|
Extends the computation of the matching distance in the generic
resolution to support options described in the table:
https://docs.nvidia.com/hpc-sdk/archive/24.3/compilers/cuda-fortran-prog-guide/index.html#cfref-var-attr-unified-data
Options are added as language features in the `SemanticsContext` and a
flag is added in bbc for testing purpose.
|
|
A compound construct with a list of clauses is broken up into individual
leaf/composite constructs. Each such construct has the list of clauses
that apply to it based on the OpenMP spec.
Each lowering function (i.e. a function that generates MLIR ops) is now
responsible for generating its body as described below.
Functions that receive AST nodes extract the construct, and the clauses
from the node. They then create a work queue consisting of individual
constructs, and invoke a common dispatch function to process (lower) the
queue.
The dispatch function examines the current position in the queue, and
invokes the appropriate lowering function. Each lowering function
receives the queue as well, and once it needs to generate its body, it
either invokes the dispatch function on the rest of the queue (if any),
or processes nested evaluations if the work queue is at the end.
Re-application of ca1bd5995f6ed934f9187305190a5abfac049173 with fixes for
compilation errors.
|
|
I wasn't able to reproduce the test crash, but I believe this might be a
different definition of 'assert' on some platforms, so I believe this
patch should fix it (and fixes the suggested warning).
|
|
|
|
Updates tests in "vector-transfer-permutation-lowering.mlir" to make a
clearer split into cases for :
* xfer_read vs xfer_write
* fixed-width vs scalable tests
A new test case is added for fixed-width vectors for vector.transfer_read.
This is to complement an existing test for scalable vectors.
This is in preparation for #90835 and also for adding more tests for
scalable vectors.
|
|
|
|
|
|
|
|
|
|
|
|
Don't create a new local SDLoc and then take a reference to it, just create the SDLoc directly.
|
|
|
|
device_type, also spelled as dtype, specifies the applicability of the
clauses following it, and takes a series of identifiers representing the
architectures it applies to. As we don't have a source for the valid
architectures yet, this patch just accepts all.
Semantically, this also limits the list of clauses that can be applied
after the device_type, so this implements that as well.
|
|
|
|
on supported platforms (#91629)
The real 10 tests fail on `AIX` on `PPC`, only check them on `x86_64`
Co-authored-by: Mark Danial <mark.danial@ibm.com>
|
|
(#91821)
… (#90885)"
This reverts commit eea81aa29848361eb5b24f24d2af643fdeb9adfd.
|
|
options category (#91932)
The `CTUPhase1InliningMode`option was originally placed under Unsigned
analyzer options, but its value is a string.
This move aligns the option with its actual type.
|
|
This script takes IR before and after canonicalization, translates it
into llvm IR and converts it to format suitable for Alive2
https://alive2.llvm.org/ce/
This is primarily for arith canonicalizations verification, but
technically it can be adapted for any dialect translatable to llvm.
Usage `python verify_canon.py canonicalize.mlir -f func1 func2 ...`
Example output: https://alive2.llvm.org/ce/z/KhQs4J
Initial discussion:
https://github.com/llvm/llvm-project/pull/91646#pullrequestreview-2049342826
|
|
G_ICMP NE => XOR(G_ICMP EQ, -1) moved to Legalizer to allow for combines
if they come up in following passes.
|
|
Allow non-constants in the `sizes` clause such as
```
#pragma omp tile sizes(a)
for (int i = 0; i < n; ++i)
```
This is permitted since tile was introduced in [OpenMP
5.1](https://www.openmp.org/spec-html/5.1/openmpsu53.html#x78-860002.11.9).
It is possible to sneak-in negative numbers at runtime as in
```
int a = -1;
#pragma omp tile sizes(a)
```
Even though it is not well-formed, it should still result in every loop
iteration to be executed exactly once, an invariant of the tile
construct that we should ensure. `ParseOpenMPExprListClause` is
extracted-out to be reused by the `permutation` clause of the
`interchange` construct. Some care was put into ensuring correct behavior
in template contexts.
|
|
(#91939)
We did not set the correct evaluation context for the compound statement
of an ``if consteval`` statement
in a templated entity in TreeTransform.
Fixes #91509
|
|
The current comparator doesn't work correctly when two identical entries
with -1 are compared. The comparator returns `first` is case when
`aIndex == -1 && bIndex == -1`, but it should `continue` as those
indexes are the same.
|
|
`omp.task` correctly (#90891)
This patch fixes the code generation of the if clause, specifically when the
condition evaluates to false and when the task directive has the depend
clause on it. When the if clause of a task construct evaluates to false,
then the task is an undeferred task. This undeferred task still has to
honor dependencies. Previously, the OpenMPIRbuilder didn't honor
dependencies. This patch fixes that.
Fixes https://github.com/llvm/llvm-project/issues/90869
|
|
(#91923)
Transfer `stdio.log` from the remote target if necessary.
|
|
(#90098)"
It breaks some builds, e.g.
https://lab.llvm.org/buildbot/#/builders/268/builds/13909
This reverts commit ca1bd5995f6ed934f9187305190a5abfac049173.
|
|
functions" (#91966)
Reverts llvm/llvm-project#90249
Fullbuild is broken:
https://lab.llvm.org/buildbot/#/builders/163/builds/56501
|
|
|
|
(#90249)
Closes #89443
I added the two missing functions and respective test cases. Let me know
if anything needs changing.
|
|
A compound construct with a list of clauses is broken up into individual
leaf/composite constructs. Each such construct has the list of clauses
that apply to it based on the OpenMP spec.
Each lowering function (i.e. a function that generates MLIR ops) is now
responsible for generating its body as described below.
Functions that receive AST nodes extract the construct, and the clauses
from the node. They then create a work queue consisting of individual
constructs, and invoke a common dispatch function to process (lower) the
queue.
The dispatch function examines the current position in the queue, and
invokes the appropriate lowering function. Each lowering function
receives the queue as well, and once it needs to generate its body, it
either invokes the dispatch function on the rest of the queue (if any),
or processes nested evaluations if the work queue is at the end.
|
|
|
|
Add TypeConversionCostKindTblEntry to hold the costs kinds and update the cast tables to take the existing default codesize/latency/sizelatency values (I'll update these values in future commits).
I've moved AdjustCost to the end of the function to ensure we don't accidentally use it, apart from when we fallback to default cost calculations.
|
|
|
|
One of the constraints of an AST is that every node object must appear
at most once, hence we define lamdas that create a new AST node at every
use.
|
|
The clang-query tool has the ability to execute or pre-load queries from
a file when the tool is launched, but doesn't have the ability to do the
same from the interactive REPL prompt. Because the prompt also doesn't
seem to allow multi-line matchers, this can make prototyping and
iterating on more complicated matchers difficult.
Supporting a dynamic load at REPL time allows the cost of reading the
compilation database and building the AST to be imposed just once, and
allows faster prototyping.
|
|
llvm::sort requires the comparator to return `false` for equal elements,
otherwise it triggers `Your comparator is not a valid strict-weak
ordering` assert.
|
|
The argument order to MatchBinaryAddToConst doesn't match the comment
and also is counter-intuitive (passing RHS before LHS, C2 before C1).
This patch adjusts the order to be inline with the calls above, which
should be equivalent, but more natural:
https://alive2.llvm.org/ce/z/ZWGp-Z
PR: https://github.com/llvm/llvm-project/pull/91945
|
|
|
|
We called getIConstantVRegVal which again queried MRI to get the VReg
def. We already have the def, so just get the CImm directly. It can't
fail.
|
|
os.path.join() uses the path separator of the host OS by default.
outfile_arg will be incorrect in case of Windows host and Linux target.
Use lldbutil.append_to_process_working_directory() instead.
|
|
The setting `platform.module-cache-directory` is a local path on the
host. It cannot be set to a working directory from the remote target.
This test failed in case of Windows host and Linux target because of the
incompatible path. Use the local build dir instead.
|
|
This is follow up fix on top of 9a7262c2601874e5aa64c5db19746770212d4b44
This fixes delayed-definition-die-searching.test to use -gdwarf. This is
required to explicitly select DWARF instead of PDB on windows.
Fixe LLDB build lldb-aarch64-windows:
https://lab.llvm.org/buildbot/#/builders/219/builds/11303
|
|
|
|
Fix #91814
When instructions are extracted into a new function the `DIAssignID` metadata
uses and attachments need to be remapped so that the stores and assignment
markers don't link to stores and assignment markers in the original function.
This matches existing inlining behaviour for DIAssignIDs.
|