<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch llvmorg-12.0.0-rc5</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>remove -fpch-codegen and -fpch-debuginfo from Clang 12.0 release notes</title>
<updated>2021-04-06T16:38:18+00:00</updated>
<author>
<name>Luboš Luňák</name>
<email>l.lunak@centrum.cz</email>
</author>
<published>2021-04-06T16:38:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d28af7c654d8db0b68c175db5ce212d74fb5e9bc'/>
<id>d28af7c654d8db0b68c175db5ce212d74fb5e9bc</id>
<content type='text'>
These were new in 11.0. The commit adding the options landed after
11.x branch had already been branched off from master, and only
then backported to 11.x, so the release notes change stayed for 12.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These were new in 11.0. The commit adding the options landed after
11.x branch had already been branched off from master, and only
then backported to 11.x, so the release notes change stayed for 12.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ORC][C-bindings] Fix some ORC C bindings function names and signatures.</title>
<updated>2021-04-02T05:25:16+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2021-03-28T23:30:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04ba60cfe598e41084fb848daae47e0ed910fa7d'/>
<id>04ba60cfe598e41084fb848daae47e0ed910fa7d</id>
<content type='text'>
LLVMOrcDisposeObjectLayer and LLVMOrcExecutionSessionGetJITDylibByName did not
have matching signatures between the C-API header and binding implementations.
Fixes http://llvm.org/PR49745.

Patch by Mats Larsen. Thanks Mats!

Reviewed by: lhames

Differential Revision: https://reviews.llvm.org/D99478

(cherry picked from commit 666df2e2cbe9fc252d3b2d6cbb214c2c2f6afc65)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLVMOrcDisposeObjectLayer and LLVMOrcExecutionSessionGetJITDylibByName did not
have matching signatures between the C-API header and binding implementations.
Fixes http://llvm.org/PR49745.

Patch by Mats Larsen. Thanks Mats!

Reviewed by: lhames

Differential Revision: https://reviews.llvm.org/D99478

(cherry picked from commit 666df2e2cbe9fc252d3b2d6cbb214c2c2f6afc65)
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopVectorize] Refine hasIrregularType predicate</title>
<updated>2021-03-31T19:10:37+00:00</updated>
<author>
<name>LemonBoy</name>
<email>thatlemon@gmail.com</email>
</author>
<published>2021-03-17T15:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=31001be371e8f2c74470e727e54503fb2aabec8b'/>
<id>31001be371e8f2c74470e727e54503fb2aabec8b</id>
<content type='text'>
The `hasIrregularType` predicate checks whether an array of N values of type Ty is "bitcast-compatible" with a &lt;N x Ty&gt; vector.
The previous check returned invalid results in some cases where there's some padding between the array elements: eg. a 4-element array of u7 values is considered as compatible with &lt;4 x u7&gt;, even though the vector is only loading/storing 28 bits instead of 32.

The problem causes LLVM to generate incorrect code for some targets: for AArch64 the vector loads/stores are lowered in terms of ubfx/bfi, effectively losing the top (N * padding bits).

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D97465

(cherry picked from commit 4f024938e4c932feba4d28573ec4522106f8d879)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `hasIrregularType` predicate checks whether an array of N values of type Ty is "bitcast-compatible" with a &lt;N x Ty&gt; vector.
The previous check returned invalid results in some cases where there's some padding between the array elements: eg. a 4-element array of u7 values is considered as compatible with &lt;4 x u7&gt;, even though the vector is only loading/storing 28 bits instead of 32.

The problem causes LLVM to generate incorrect code for some targets: for AArch64 the vector loads/stores are lowered in terms of ubfx/bfi, effectively losing the top (N * padding bits).

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D97465

(cherry picked from commit 4f024938e4c932feba4d28573ec4522106f8d879)
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV][MC] Fix nf encoding for vector ld/st whole register</title>
<updated>2021-03-30T21:30:15+00:00</updated>
<author>
<name>ShihPo Hung</name>
<email>shihpo.hung@sifive.com</email>
</author>
<published>2021-03-30T21:30:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9ae9ab1ca34384e07b751c16645e22a0b953b08b'/>
<id>9ae9ab1ca34384e07b751c16645e22a0b953b08b</id>
<content type='text'>
The three bit nf is one less than the number of NFIELDS,
so we manually decrement 1 for VS1/2/4/8R &amp; VL1/2/4/8R.

Differential revision: https://reviews.llvm.org/D98185

(cherry picked from commit rG5cdb2e98608bf57c216ee7067e8a12d070c9e2bd)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The three bit nf is one less than the number of NFIELDS,
so we manually decrement 1 for VS1/2/4/8R &amp; VL1/2/4/8R.

Differential revision: https://reviews.llvm.org/D98185

(cherry picked from commit rG5cdb2e98608bf57c216ee7067e8a12d070c9e2bd)
</pre>
</div>
</content>
</entry>
<entry>
<title>[InstCombine] avoid creating an extra instruction in zext fold and possible inf-loop</title>
<updated>2021-03-30T21:28:12+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2021-03-13T13:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ff2cf8fafa5ad9a76e59fa086d969d4e2ecc3a39'/>
<id>ff2cf8fafa5ad9a76e59fa086d969d4e2ecc3a39</id>
<content type='text'>
The structure of this fold is suspect vs. most of instcombine
because it creates instructions and tries to delete them
immediately after.

If we don't have the operand types for the icmps, then we are
not behaving as assumed. And as shown in PR49475, we can inf-loop.

(cherry picked from commit 4224a36957420744756d6a6450eb6502a1bfadc3)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The structure of this fold is suspect vs. most of instcombine
because it creates instructions and tries to delete them
immediately after.

If we don't have the operand types for the icmps, then we are
not behaving as assumed. And as shown in PR49475, we can inf-loop.

(cherry picked from commit 4224a36957420744756d6a6450eb6502a1bfadc3)
</pre>
</div>
</content>
</entry>
<entry>
<title>[InstCombine] add test for zext-of-icmps; NFC</title>
<updated>2021-03-30T21:28:11+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2021-03-12T19:15:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5b3480610383ba281ef0c7918a6c097058a408d4'/>
<id>5b3480610383ba281ef0c7918a6c097058a408d4</id>
<content type='text'>
PR49475 shows an infinite loop outcome, but this
tries to show the root cause with a minimal test.

(cherry picked from commit 579b8fc2e97c489308f97b01d13d894c03c0a16c)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PR49475 shows an infinite loop outcome, but this
tries to show the root cause with a minimal test.

(cherry picked from commit 579b8fc2e97c489308f97b01d13d894c03c0a16c)
</pre>
</div>
</content>
</entry>
<entry>
<title>[X86][FastISel] Fix with.overflow eflags clobber (PR49587)</title>
<updated>2021-03-30T21:27:00+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2021-03-14T15:47:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=38dd45b00431e2c065e172751492e0ded59e49e6'/>
<id>38dd45b00431e2c065e172751492e0ded59e49e6</id>
<content type='text'>
If the successor block has a phi node, then additional moves may
be inserted into predecessors, which may clobber eflags. Don't try
to fold the with.overflow result into the branch in that case.

This is done by explicitly checking for any phis in successor
blocks, not sure if there's some more principled way to address
this. Other fused compare and branch patterns avoid the issue by
emitting the comparison when handling the branch, so that no
instructions may be inserted in between. In this case, the
with.overflow call is emitted separately (and I don't think this
is avoidable, as it will generally have at least two users).

Fixes https://bugs.llvm.org/show_bug.cgi?id=49587.

Differential Revision: https://reviews.llvm.org/D98600

(cherry picked from commit 7669455df49e6fc8ae7d9f4bd4ee95bb20e7eb6e)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the successor block has a phi node, then additional moves may
be inserted into predecessors, which may clobber eflags. Don't try
to fold the with.overflow result into the branch in that case.

This is done by explicitly checking for any phis in successor
blocks, not sure if there's some more principled way to address
this. Other fused compare and branch patterns avoid the issue by
emitting the comparison when handling the branch, so that no
instructions may be inserted in between. In this case, the
with.overflow call is emitted separately (and I don't think this
is avoidable, as it will generally have at least two users).

Fixes https://bugs.llvm.org/show_bug.cgi?id=49587.

Differential Revision: https://reviews.llvm.org/D98600

(cherry picked from commit 7669455df49e6fc8ae7d9f4bd4ee95bb20e7eb6e)
</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] Add test for PR49587 (NFC)</title>
<updated>2021-03-30T21:27:00+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2021-03-14T15:39:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=79a79d1d01c4c206d8de3569c72747587d929770'/>
<id>79a79d1d01c4c206d8de3569c72747587d929770</id>
<content type='text'>
Shows a miscompile with FastISel.

(cherry picked from commit 0d814ca0f02733d6581bf209fadbebf3035380e0)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Shows a miscompile with FastISel.

(cherry picked from commit 0d814ca0f02733d6581bf209fadbebf3035380e0)
</pre>
</div>
</content>
</entry>
<entry>
<title>[FastISel] Don't trivially kill extractvalues (PR49467)</title>
<updated>2021-03-29T23:52:09+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2021-03-07T16:27:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f05b649610564b11c481a20598dbb3f532c4602a'/>
<id>f05b649610564b11c481a20598dbb3f532c4602a</id>
<content type='text'>
All extractvalues of the same value at the same index will map to
the same register, so even if one specific extractvalue only has
one use, we should not mark it as a trivial kill, as there may be
more extractvalues later.

Fixes https://bugs.llvm.org/show_bug.cgi?id=49467.

Differential Revision: https://reviews.llvm.org/D98145

(cherry picked from commit 55ae279ba7a5905f39ce3ae79eac7834a4a134cc)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All extractvalues of the same value at the same index will map to
the same register, so even if one specific extractvalue only has
one use, we should not mark it as a trivial kill, as there may be
more extractvalues later.

Fixes https://bugs.llvm.org/show_bug.cgi?id=49467.

Differential Revision: https://reviews.llvm.org/D98145

(cherry picked from commit 55ae279ba7a5905f39ce3ae79eac7834a4a134cc)
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Restore backwards compatibility for libomptarget</title>
<updated>2021-03-29T23:46:58+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>jhuber6@vols.utk.edu</email>
</author>
<published>2021-03-10T18:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e89cdf8937bb6017cc99b05823428dd2fd673368'/>
<id>e89cdf8937bb6017cc99b05823428dd2fd673368</id>
<content type='text'>
Summary:
The changes introduced in D87946 changed the API for libomptarget
functions. `__kmpc_push_target_tripcount` was a function in Clang 11.x
but was not given a backward-compatible interface. This change will
require people using Clang 13.x or 12.x to recompile their offloading
programs.

Reviewed By: jdoerfert cchen

Differential Revision: https://reviews.llvm.org/D98358

(cherry picked from commit 807466ef28125cf7268c860b09d5563c9c93602a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
The changes introduced in D87946 changed the API for libomptarget
functions. `__kmpc_push_target_tripcount` was a function in Clang 11.x
but was not given a backward-compatible interface. This change will
require people using Clang 13.x or 12.x to recompile their offloading
programs.

Reviewed By: jdoerfert cchen

Differential Revision: https://reviews.llvm.org/D98358

(cherry picked from commit 807466ef28125cf7268c860b09d5563c9c93602a)
</pre>
</div>
</content>
</entry>
</feed>
