<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/wangpc-pp/spr/main.mimplid-mimpid</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>[𝘀𝗽𝗿] changes to main this commit is based on</title>
<updated>2024-11-19T05:52:49+00:00</updated>
<author>
<name>Wang Pengcheng</name>
<email>wangpengcheng.pp@bytedance.com</email>
</author>
<published>2024-11-19T05:52:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a2d65ca78e2d80362eb0631715fb95492402495c'/>
<id>a2d65ca78e2d80362eb0631715fb95492402495c</id>
<content type='text'>
Created using spr 1.3.6-beta.1

[skip ci]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Created using spr 1.3.6-beta.1

[skip ci]
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Accept iterators instead of raw pointers in __uninitialized_allocator_relocate (#114552)</title>
<updated>2024-11-14T10:22:48+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-11-14T10:22:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6721bcfd1b6494e9643a04a13144f282979544ad'/>
<id>6721bcfd1b6494e9643a04a13144f282979544ad</id>
<content type='text'>
This generalizes the algorithm a bit. Unfortunately, we can't make 
the call sites cleaner inside std::vector because the arguments being
passed can all be fancy pointers, which may not be contiguous iterators.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This generalizes the algorithm a bit. Unfortunately, we can't make 
the call sites cleaner inside std::vector because the arguments being
passed can all be fancy pointers, which may not be contiguous iterators.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo][InstCombine] When replacing bswap idiom, add DebugLoc to new insts (#114231)</title>
<updated>2024-11-14T10:06:29+00:00</updated>
<author>
<name>Stephen Tozer</name>
<email>stephen.tozer@sony.com</email>
</author>
<published>2024-11-14T10:06:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d686e5cdafab7c6d8fb9d27ec428cf3b9d145c56'/>
<id>d686e5cdafab7c6d8fb9d27ec428cf3b9d145c56</id>
<content type='text'>
Currently when InstCombineAndOrXor recognizes a bswap idiom and replaces
it with an intrinsic and other instructions, only the last instruction
gets the DebugLoc of the replaced instruction set to it. This patch
applies the DebugLoc to all the generated instructions, to maintain some
degree of attribution.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently when InstCombineAndOrXor recognizes a bswap idiom and replaces
it with an intrinsic and other instructions, only the last instruction
gets the DebugLoc of the replaced instruction set to it. This patch
applies the DebugLoc to all the generated instructions, to maintain some
degree of attribution.</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] canonicalizeBitSelect/combineLogicBlendIntoPBLENDV - avoid SDLoc duplication. NFC.</title>
<updated>2024-11-14T10:02:24+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2024-11-14T10:02:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1ef4d3b6bf9879a21b15e62e7d4323973914feb0'/>
<id>1ef4d3b6bf9879a21b15e62e7d4323973914feb0</id>
<content type='text'>
Reuse caller's equivalent SDLoc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reuse caller's equivalent SDLoc
</pre>
</div>
</content>
</entry>
<entry>
<title>[msan] Add 32-bit platforms support (#109284)</title>
<updated>2024-11-14T09:41:13+00:00</updated>
<author>
<name>k-kashapov</name>
<email>52855633+k-kashapov@users.noreply.github.com</email>
</author>
<published>2024-11-14T09:41:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d9e2fb70d0b72b398fef3106bab0605b5b3e6761'/>
<id>d9e2fb70d0b72b398fef3106bab0605b5b3e6761</id>
<content type='text'>
References https://github.com/llvm/llvm-project/issues/103057

Added `VAArgHelper` functions for platforms: ARM32, i386, RISC-V,
PowerPC32, MIPS32.

ARM, RISCV and MIPS share similar conventions regarding va args.
Therefore `VAArgGenericHelper` was introduced to avoid code duplication.

---------

Co-authored-by: Kamil Kashapov &lt;kashapov@ispras.ru&gt;
Co-authored-by: Vitaly Buka &lt;vitalybuka@google.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
References https://github.com/llvm/llvm-project/issues/103057

Added `VAArgHelper` functions for platforms: ARM32, i386, RISC-V,
PowerPC32, MIPS32.

ARM, RISCV and MIPS share similar conventions regarding va args.
Therefore `VAArgGenericHelper` was introduced to avoid code duplication.

---------

Co-authored-by: Kamil Kashapov &lt;kashapov@ispras.ru&gt;
Co-authored-by: Vitaly Buka &lt;vitalybuka@google.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang][OMP]Add support for DECLARE MAPPER parsing and semantics (#115160)</title>
<updated>2024-11-14T09:35:34+00:00</updated>
<author>
<name>Mats Petersson</name>
<email>mats.petersson@arm.com</email>
</author>
<published>2024-11-14T09:35:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ec1e0c5ecd53e415b23d5bd40b8e44e3ef4b4d92'/>
<id>ec1e0c5ecd53e415b23d5bd40b8e44e3ef4b4d92</id>
<content type='text'>
Will hit a TODO in the lowering, which there are tests added to check
for this happening.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Will hit a TODO in the lowering, which there are tests added to check
for this happening.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo][LoopVectorizer] Avoid dropping !dbg in optimizeForVFAndUF (#114243)</title>
<updated>2024-11-14T09:33:46+00:00</updated>
<author>
<name>Stephen Tozer</name>
<email>stephen.tozer@sony.com</email>
</author>
<published>2024-11-14T09:33:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=caa9a827978536ea0047c75b32a8fedd6a1dcacf'/>
<id>caa9a827978536ea0047c75b32a8fedd6a1dcacf</id>
<content type='text'>
Prior to this patch, optimizeForVFAndUF may optimize the conditional
branch for a VPBasicblock to have a constant condition, but
unnecessarily drops the DILocation attachment when it does so; this
patch changes it to preserve the DILocation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prior to this patch, optimizeForVFAndUF may optimize the conditional
branch for a VPBasicblock to have a constant condition, but
unnecessarily drops the DILocation attachment when it does so; this
patch changes it to preserve the DILocation.</pre>
</div>
</content>
</entry>
<entry>
<title>[gn build] Port c1c68baf7e0f</title>
<updated>2024-11-14T09:19:23+00:00</updated>
<author>
<name>LLVM GN Syncbot</name>
<email>llvmgnsyncbot@gmail.com</email>
</author>
<published>2024-11-14T09:19:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b18bb240a8ea4d698deaf95a47df838d1352c504'/>
<id>b18bb240a8ea4d698deaf95a47df838d1352c504</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MC][ARM] Fix crash when assembling Thumb 'movs r0,#foo'. (#115026)</title>
<updated>2024-11-14T09:14:59+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>simon.tatham@arm.com</email>
</author>
<published>2024-11-14T09:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d97f17a95982bab49ecdfb9b45ef3c7d7e3d143e'/>
<id>d97f17a95982bab49ecdfb9b45ef3c7d7e3d143e</id>
<content type='text'>
If the assembler sees this instruction, understanding `foo` to be an
external symbol, there's no relocation it can write that will put the
whole value of `foo` into the 8-bit immediate field of the 16-bit Thumb
add instruction. So it should report an error message pointing at the
source line, and in LLVM 18, it did exactly that. But now the error is
not reported, due to an indexing error in the operand list in
`validateInstruction`, and instead the code continues to attempt
assembly, ending up aborting at the `llvm_unreachable` at the end of
`getHiLoImmOpValue`.

In this commit I've fixed the index in the `ARM::tMOVi8` case of
`validateInstruction`, and also the one for `tADDi8` which must cope
with either the 2- or 3-operand form in the input assembly source. But
also, while writing the test, I found that if you assemble for Armv7-M
instead of Armv6-M, the instruction has opcode `t2ADDri` when it goes
through `validateInstruction`, and only turns into `tMOVi8` later in
`processInstruction`. Then it's too late for `validateInstruction` to
report that error. So I've adjusted `processInstruction` to spot that
case and inhibit the conversion.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the assembler sees this instruction, understanding `foo` to be an
external symbol, there's no relocation it can write that will put the
whole value of `foo` into the 8-bit immediate field of the 16-bit Thumb
add instruction. So it should report an error message pointing at the
source line, and in LLVM 18, it did exactly that. But now the error is
not reported, due to an indexing error in the operand list in
`validateInstruction`, and instead the code continues to attempt
assembly, ending up aborting at the `llvm_unreachable` at the end of
`getHiLoImmOpValue`.

In this commit I've fixed the index in the `ARM::tMOVi8` case of
`validateInstruction`, and also the one for `tADDi8` which must cope
with either the 2- or 3-operand form in the input assembly source. But
also, while writing the test, I found that if you assemble for Armv7-M
instead of Armv6-M, the instruction has opcode `t2ADDri` when it goes
through `validateInstruction`, and only turns into `tMOVi8` later in
`processInstruction`. Then it's too late for `validateInstruction` to
report that error. So I've adjusted `processInstruction` to spot that
case and inhibit the conversion.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstCombine] Use KnownBits predicate helpers (#115874)</title>
<updated>2024-11-14T09:13:50+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-11-14T09:13:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=78f7ca0980f3369da19e3cbb01890fe718307ac2'/>
<id>78f7ca0980f3369da19e3cbb01890fe718307ac2</id>
<content type='text'>
Inside foldICmpUsingKnownBits(), instead of rolling our own logic based
on min/max values, make use of ICmpInst::compare() working on KnownBits.
This gives better results for the equality predicates. In practice, the
improvement is only for pointers, because isKnownNonEqual() handles the
non-pointer case.

I've adjusted some tests to prevent the new fold from triggering, to
retain their original intent of testing constant expressions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Inside foldICmpUsingKnownBits(), instead of rolling our own logic based
on min/max values, make use of ICmpInst::compare() working on KnownBits.
This gives better results for the equality predicates. In practice, the
improvement is only for pointers, because isKnownNonEqual() handles the
non-pointer case.

I've adjusted some tests to prevent the new fold from triggering, to
retain their original intent of testing constant expressions.</pre>
</div>
</content>
</entry>
</feed>
