Skip to content
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

Merge relevant changes into release 1.7.2212 #5045

Merged
merged 13 commits into from
Feb 27, 2023

Conversation

pow2clk
Copy link
Member

@pow2clk pow2clk commented Feb 21, 2023

Collects bug fix changes from main into release 1.7.2212

@AppVeyorBot
Copy link

@pow2clk pow2clk force-pushed the cp-release-1.7.2212 branch 2 times, most recently from ce05c9c to 092d039 Compare February 24, 2023 00:34
@AppVeyorBot
Copy link

Keenuts and others added 13 commits February 23, 2023 19:17
Having this enabled makes dxc depends on ncurses5. This is required by
LLVM when supporting colored message output, but DXC doesn't supports it
for now.

Fixes microsoft#4892

(cherry picked from commit 88a2888)
…oft#4927)

structurize-returns uses scope-end blocks recorded during codegen to transform the control flow. When "cleanup" blocks are generated (for example for lifetime-markers), structurize-returns as is cannot transform the control flow safely. This change disables structurize-returns and emits a warning when cleanup blocks are detected in the affected function.

(cherry picked from commit 93f43ec)
…er offsets (microsoft#4952)

* Ignore static members

* Remove filecheck macros from test code

(cherry picked from commit bef540d)
We would create the dxil runtime reflection object but never free it.
Using a unique_ptr here does the job.

Found by running external tests with appverifier enabled.

(cherry picked from commit 661f7ce)
PDBs compiled with /D "" results in an empty define in the PDB/debug DXIL, which causes IDxcPdbUtils to crash when reading the defines. This change does not fix the empty define, just makes IDxcPdbUtils not crash when reading PDBs like this.

The test consists of a compiled DXIL with embedded debug with an empty define. If we decide to fix the empty define later, this test would continue to test for regression.

(cherry picked from commit ce9b3a2)
1. The StringRef in the `stringLiterals` in the `SpirvBuilder` can have a
dangling reference causing undefined behaviour.
2. Two symbols can have the same name, so when we sort a vector of symbols by
name, we want to use std::stable_sort to make sure we get deterministic
behaviour.

(cherry picked from commit 7c4927a)
When scalarize shuffle inst which has extract element as the input element,
create clone before the shuffle instead of after.

Because later when replace the shuffle, new vector will be inserted before the shuffle.
The elt define will be after its use if inserted before the shuffle earlier.
Like
%[[B:.+]] = load <2 x float>, <2 x float>* %b, align 4 %[[X:.+]] = insertelement <4 x float> undef, float %[[BX0]], i32 0
%[[Y:.+]] = insertelement <4 x float> %[[X]], float %[[BY0]], i32 1
%[[Z:.+]] = insertelement <4 x float> %[[Y]], float %[[BX1]], i32 2
%[[W:.+]] = insertelement <4 x float> %[[Z]], float %[[BY1]], i32 3 %[[BX0:.+]] = extractelement <2 x float> %[[B]], i32 0
%[[BY0:.+]] = extractelement <2 x float> %[[B]], i32 1
%[[BX1:.+]] = extractelement <2 x float> %[[B]], i32 0
%[[BY1:.+]] = extractelement <2 x float> %[[B]], i32 1

(cherry picked from commit b3dedc9)
dxcapi.h and dxcisense.h had inconsistent and unhelpful for release
include paths to find WinAdapter.h. By adding the necessary -I flag,
the include can be found without including the paths

Fixes microsoft#4918

(cherry picked from commit 00da3ab)
When present in the library search path, linux builds of
libdxcompiler.so and the dxc executable should load libdxil.so and use
it for validation and signing. However, the code to do that was still
searching for dxil.dll even on these platforms.

This change creates appropriate names for the dxcompiler and dxil
libraries for each platform and uses them where appropriate.

In addition, this changes some of the internal interfaces from wide
chars to simple chars as the wide interface wasn't useful here.

(cherry picked from commit ae51624)
This is a bit hacky. We don't want to have SO versions but we do want
SO names. This makes it a bit wonky since CMake doesn't support this
usage.

(cherry picked from commit 46eb82e)
`dlopen` and `dlsym` do not set `errno` on failure, instead errors are provided in string format via `dlerror()`. Since we don't currently have a good way to propagate string errors we don't propagate them through our API, but this does correct code that otherwise was returning success on failing `dlopen`/`dlsym` calls.

(cherry picked from commit 4d7b69c)
@AppVeyorBot
Copy link

@pow2clk pow2clk merged commit f949bca into microsoft:release-1.7.2212 Feb 27, 2023
@pow2clk pow2clk deleted the cp-release-1.7.2212 branch February 27, 2023 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.