Skip to content

LLVM and SPIRV-LLVM-Translator pulldown (WW39) #6898

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1,923 commits into from
Oct 4, 2022

Conversation

dbudanov-cmplr
Copy link
Contributor

klausler and others added 30 commits September 23, 2022 11:18
…ocedure

The code snippet

  module m
    interface
      module subroutine specific
      end subroutine
    end interface
    interface generic
       module procedure specific
    end interface
  end module

elicits a bogus semantic error about "specific" not being an acceptable
module procedure for the generic interface; fix.

Differential Revision: https://reviews.llvm.org/D134402
…valent"

This reverts commit eef5db2.

See llvm/llvm-project#57815.

dso_local_equivalent would fail with an assertion on forward-referenced
globals. This is an issue that only comes up in textual IR, which is why
we've never seen this assertion with clang.

Differential Revision: https://reviews.llvm.org/D134234
This reverts commit 794b7ea, and
thus restores commit a212d8d, and
follow on fixes 0cd6763,
e9ff53d, and
37c6a25.

Use a hash function (BLAKE3) instead of hash_combine/hash_code which are
not guaranteed to be stable across executions.

Additionally, it adds a "REQUIRES: x86_64-linux" to the tests that have
raw profile inputs to avoid failures on big endian bots.

Reviewers: snehasish, davidxl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D128142
Attributes like PURE, ELEMENTAL, &c. are specified on the interface of
a separate module procedure, so when the MODULE PROCEDURE is defined in
a submodule, it must acquire those attributes from the interface.

Differential Revision: https://reviews.llvm.org/D134403
Instructions might use definition register as its "undef" operand. It
happens on architectures with predicated executon:

```
%0:subreg = instruction op_1, ..., op_N, undef %0:subreg, op_N+2, ...
```

RegisterCoalescer should take into account all remat instruction
operands during destination subregister fixup.

```
; remat result before fix:
%1 = instruction op_1, ..., op_N, undef %1:subreg, op_N+2, ...

; remat result after fix (correct):
%1 = instruction op_1, ..., op_N, undef %1, op_N+2, ...
```

Differential Revision: https://reviews.llvm.org/D125657
The full complement of physical VGPRs for GFX11 is 50% more than GFX10.
Some subtargets have this, others stay the same as GFX10. This affects
occupancy calculations.

Differential Revision: https://reviews.llvm.org/D134522
Apparently TransformDecl in TreeTransform can be called with a nullptr
for a Decl, so my casts were illegal.  The fix here is to add an early
exit to my TransformDecl.
…lysis

When a DynamicType for CHARACTER has a known length, correct a negative
length value to its effective length of zero so that all such types
compare equal in interface compatibility checking.

Differential Revision: https://reviews.llvm.org/D134405
This reverts commit 3f08d24.

The commit this change is fixing is being reverted due to GHI #57796 and #37821, so revert this commit as well.
…e and load slices"

This reverts commit de3445e.

This is causing GHI #57796 and #57821.
regexp for try_run path expects '0 or more' digits which is incorrect because it should be 'one or more', regexp for header parsing expects 'exactly one' digit which is incorrect with current Z3 version (4.11.2)

Reviewed By: mikhail.ramalho

Differential Revision: https://reviews.llvm.org/D134261
Test is broken by D130579. Temporarily disable to silence builbot failures.
When an explicit MODULE procedure is defined in the same (sub)module
as its interface, and the interface was defined in a generic
interface of the same name, bogus errors about symbols already
having been defined will ensue.  Cleaning up this aspect of name
resolution and symbol table management requires marking the
place-holding SubprogramNameDetails symbols of explicit MODULE
subprograms as such, ensuring that that attribute is not inherited
if the SubprogramNameDetails symbol is recycled as a SubprogramDetails,
and gathering some code that should have been common between
BeginSubprogram() and BeginMpSubprogram() together in one
new routine.

Differential Revision: https://reviews.llvm.org/D134446
Any symbol in a module file will have been already shamed with
portability warnings when the module was compiled, so don't pile
on when compiling other program units that use the module.
This also silences warnings about some symbols whose names were
created or extended by the compiler to avoid clashes.

Differential Revision: https://reviews.llvm.org/D134455
At present, IS_CONTIGUOUS() can only either fold to .TRUE. or
remain unknown.  The underlying analysis, however, is capable
of returning a tri-state result (true, false, or unknown).
Extend and expose it to folding so that IS_CONTIGUOUS() can
fold to .FALSE. as well as to .TRUE. when contiguity is
known.

Differential Revision: https://reviews.llvm.org/D134466
… a generic

A generic-spec can appear on a module accessibility control statement
even if it has not been declared as a generic interface, because there's
nothing else that it could be.

While here, simplify the parse tree and parser for AccessId, since
one of its alternatives is ambiguous with the other.

Differential Revision: https://reviews.llvm.org/D134471
Change-Id: I0d90f86ab759347a2f20448d28cc09ddaea3a4d4
This allows us to directly use the models published on Github.

Differential Revision: https://reviews.llvm.org/D134566
When a scalar expression is not expandable -- i.e., it would have to be
evaluated once and saved in a temporary to avoid changing the semantics
of the program if it were to be evaluated more than once -- it affects
some aspects of folding and expression semantics.  In cases where
scalar expansion would not cause multiple evaluations due to the shape
of the result having but a single element, however, these "non-expandable"
scalar expressions can be safely allowed.

Differential Revision: https://reviews.llvm.org/D134476
f18 emits an error message when two objects related by EQUIVALENCE
to a third are specified as members of a COMMON block.  This is not
always a sign of an error, however; it is possible for multiple objects
in a COMMON block to all be equivalenced to distinct offsets in another
object in a way that is consistent.  So refine the check.

Differential Revision: https://reviews.llvm.org/D134485
I am building with clang, and I noticed for quite a while that
REAL(16) runtimes functions are not available. I did not know why
until I saw this typo.

Differential Revision: https://reviews.llvm.org/D134503
Change "inconsistant" for "inconsistent" in the message, the file name
and the test output.

Reviewed By: pete, MaskRay

Differential Revision: https://reviews.llvm.org/D134562
…ct.ll. NFC

I had forgotten how we had the files partitioned.
When a component array of a named constant is extracted as
a constant value, ensure that the lower bounds of the array
are properly acquired from the declaration of the component.

Differential Revision: https://reviews.llvm.org/D134499
…99/basedefs/time.h.html

Tested:
Limited unit test: This makes a call and checks that no error was
returned, but we currently don't have the ability to ensure that
time has elapsed as expected.

Co-authored-by: Jeff Bailey <[email protected]>

Reviewed By: sivachandra, jeffbailey

Differential Revision: https://reviews.llvm.org/D134095
When a FUNCTION statement has both an explicit type in its prefix
and a RESULT clause in its suffix, semantics crashes due to the
redundant type; emit a nice error message instead.

Differential Revision: https://reviews.llvm.org/D134504
Prepare for switching to prefixed accessors.

Issue: llvm/llvm-project#57887

Reviewed By: antiagainst, rriddle

Differential Revision: https://reviews.llvm.org/D134560
…ing-point type."

This reverts commit dd53a0b.

We have seen crashes from this internally. Probably due to the use
of RoundingMode::Dynamic.
jcranmer-intel and others added 12 commits September 27, 2022 18:25
This requires changing all of the callers of this method at the same time.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@1aa3b17
The test change is because use of an IRBuilder causes extra constant folding to
happen that previously didn't happen.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@44c70a8
With this commit, the last call to Type::getPointerElementType in the translator
is truly dead, completing the first phase of transitioning to opaque pointers.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@3938c74
Code in handleInitPriorityAttr() to emit an HLSL specific diagnostic was lost
in the merge. This change restores that lost code.
@dbudanov-cmplr dbudanov-cmplr requested review from a team and pvchupin as code owners September 28, 2022 17:36
@dbudanov-cmplr dbudanov-cmplr added the disable-lint Skip linter check step and proceed with build jobs label Sep 28, 2022
	Driver/amdgpu-openmp-toolchain-new.c
	Driver/openmp-offload-gpu-new.c
Were removed by	4716696 (differential revision https://reviews.llvm.org/D130020)
Later these tests were restored as a result of incorrect merge.
This fix removes these test again.
	After optimization, the function is completely empty. Therefore it is "nocapture".
	ptr type arguments should be "noundef" (probably all args in C/C++ should be noundef).
	Both "nocapture" and "noundef" are correct.
@pvchupin
Copy link
Contributor

pvchupin commented Oct 3, 2022

Windows check-clang issue is was fixed in #6938

@kbobrovs, @v-klochkov , can you take a look into

Timed Out Tests (1):
  SYCL :: ESIMD/dword_atomic_cmpxchg.cpp

@kbobrovs
Copy link
Contributor

kbobrovs commented Oct 4, 2022

I took a look. The root cause is a test problem, patch is on the way.

@kbobrovs
Copy link
Contributor

kbobrovs commented Oct 4, 2022

I took a look. The root cause is a test problem, patch is on the way.

Fix: intel/llvm-test-suite#1304

@pvchupin
Copy link
Contributor

pvchupin commented Oct 4, 2022

With the last test fix merged this looks clean now

@pvchupin
Copy link
Contributor

pvchupin commented Oct 4, 2022

/merge

@bb-sycl
Copy link
Contributor

bb-sycl commented Oct 4, 2022

Tue 04 Oct 2022 04:03:15 PM UTC --- Start to merge the commit into sycl branch. It will take several minutes.

@bb-sycl
Copy link
Contributor

bb-sycl commented Oct 4, 2022

Tue 04 Oct 2022 04:06:58 PM UTC --- Merge the branch in this PR to base automatically. Will close the PR later.

@bb-sycl bb-sycl merged commit f3cc5b1 into intel:sycl Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disable-lint Skip linter check step and proceed with build jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.