<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Utils/BuildLibCalls.cpp, branch main</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>[TLI] Add basic support for nextafter/nexttoward libcalls (#166250)</title>
<updated>2025-11-05T21:18:18+00:00</updated>
<author>
<name>Sayan Sivakumaran</name>
<email>sivakusayan@gmail.com</email>
</author>
<published>2025-11-05T21:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e79528f7b82b6dc98bc8a81d202d58aef3f26519'/>
<id>e79528f7b82b6dc98bc8a81d202d58aef3f26519</id>
<content type='text'>
First patch for #74368. Constant folding will be added in a follow-up
patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
First patch for #74368. Constant folding will be added in a follow-up
patch.</pre>
</div>
</content>
</entry>
<entry>
<title>[TLI] Add support for pvalloc() (#144949)</title>
<updated>2025-06-23T10:03:35+00:00</updated>
<author>
<name>Marco Elver</name>
<email>elver@google.com</email>
</author>
<published>2025-06-23T10:03:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0662045bdf6ca2186511dd84f3b2248bedece690'/>
<id>0662045bdf6ca2186511dd84f3b2248bedece690</id>
<content type='text'>
While pvalloc() is a legacy POSIX function, it remains widely available
in common C libraries like glibc.

Model pvalloc() in TargetLibraryInfo, allowing LLVM to correctly infer
its attributes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While pvalloc() is a legacy POSIX function, it remains widely available
in common C libraries like glibc.

Model pvalloc() in TargetLibraryInfo, allowing LLVM to correctly infer
its attributes.</pre>
</div>
</content>
</entry>
<entry>
<title>[LibCall] Infer nocallback for libcalls (#135173)</title>
<updated>2025-04-12T07:11:54+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2025-04-12T07:11:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=76e07d8ba5286daf349ef19588c8c011162bec09'/>
<id>76e07d8ba5286daf349ef19588c8c011162bec09</id>
<content type='text'>
This patch adds `nocallback` attributes for string/math libcalls. It
allows FuncAttributor to infer `norecurse` more precisely and encourages
more aggressive global optimization.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds `nocallback` attributes for string/math libcalls. It
allows FuncAttributor to infer `norecurse` more precisely and encourages
more aggressive global optimization.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[Transforms] LoopIdiomRecognize recognize strlen and wcslen #108985" (#132572)</title>
<updated>2025-03-24T13:49:31+00:00</updated>
<author>
<name>Henry Jiang</name>
<email>h243jian@uwaterloo.ca</email>
</author>
<published>2025-03-24T13:49:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9694844d7e36fd5e01011ab56b64f27b867aa72d'/>
<id>9694844d7e36fd5e01011ab56b64f27b867aa72d</id>
<content type='text'>
Reland https://github.com/llvm/llvm-project/pull/108985

Extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reland https://github.com/llvm/llvm-project/pull/108985

Extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Reland "[Transforms] LoopIdiomRecognize recognize strlen and wcslen (#108985)" (#131412)"</title>
<updated>2025-03-22T10:41:04+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2025-03-22T10:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2a4522229c7b744dcd268a790ba61e4eb2bfa315'/>
<id>2a4522229c7b744dcd268a790ba61e4eb2bfa315</id>
<content type='text'>
This reverts commit ac9049df7e62e2ca4dc5d103593b51639b5715e3.

This change broke Wine (causing it to hang on startup), see
https://github.com/llvm/llvm-project/pull/108985 for discussion.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ac9049df7e62e2ca4dc5d103593b51639b5715e3.

This change broke Wine (causing it to hang on startup), see
https://github.com/llvm/llvm-project/pull/108985 for discussion.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[Transforms] LoopIdiomRecognize recognize strlen and wcslen (#108985)" (#131412)</title>
<updated>2025-03-21T13:49:10+00:00</updated>
<author>
<name>Henry Jiang</name>
<email>h243jian@uwaterloo.ca</email>
</author>
<published>2025-03-21T13:49:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ac9049df7e62e2ca4dc5d103593b51639b5715e3'/>
<id>ac9049df7e62e2ca4dc5d103593b51639b5715e3</id>
<content type='text'>
Relands https://github.com/llvm/llvm-project/pull/108985

This PR continues the effort made in
https://discourse.llvm.org/t/rfc-strlen-loop-idiom-recognition-folding/55848
and https://reviews.llvm.org/D83392 and https://reviews.llvm.org/D88460
to extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relands https://github.com/llvm/llvm-project/pull/108985

This PR continues the effort made in
https://discourse.llvm.org/t/rfc-strlen-loop-idiom-recognition-folding/55848
and https://reviews.llvm.org/D83392 and https://reviews.llvm.org/D88460
to extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[Transforms] LoopIdiomRecognize recognize strlen and wcslen (#108985)" (#131405)</title>
<updated>2025-03-14T23:11:26+00:00</updated>
<author>
<name>Henry Jiang</name>
<email>h243jian@uwaterloo.ca</email>
</author>
<published>2025-03-14T23:11:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5b2a8819fbe0966b740cc0d9c73591b6d2c9d20f'/>
<id>5b2a8819fbe0966b740cc0d9c73591b6d2c9d20f</id>
<content type='text'>
This reverts commit bf6357f0f51eccc48b92a130afb51c0280d56180.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit bf6357f0f51eccc48b92a130afb51c0280d56180.</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms] LoopIdiomRecognize recognize strlen and wcslen (#108985)</title>
<updated>2025-03-14T22:56:34+00:00</updated>
<author>
<name>Henry Jiang</name>
<email>h243jian@uwaterloo.ca</email>
</author>
<published>2025-03-14T22:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bf6357f0f51eccc48b92a130afb51c0280d56180'/>
<id>bf6357f0f51eccc48b92a130afb51c0280d56180</id>
<content type='text'>
This PR continues the effort made in
https://discourse.llvm.org/t/rfc-strlen-loop-idiom-recognition-folding/55848
and https://reviews.llvm.org/D83392 and https://reviews.llvm.org/D88460
to extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```

---------

Co-authored-by: Michael Kruse &lt;github@meinersbur.de&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR continues the effort made in
https://discourse.llvm.org/t/rfc-strlen-loop-idiom-recognition-folding/55848
and https://reviews.llvm.org/D83392 and https://reviews.llvm.org/D88460
to extend `LoopIdiomRecognize` to find and replace loops of the form
```c
base = str;
while (*str)
  ++str;
```
and transforming the `strlen` loop idiom into the appropriate `strlen`
and `wcslen` library call which will give a small performance boost if
replaced.
```c
str = base + strlen(base)
len = str - base
```

---------

Co-authored-by: Michael Kruse &lt;github@meinersbur.de&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[InferAttrs] Refine attributes for a few libc routines</title>
<updated>2025-03-13T11:59:57+00:00</updated>
<author>
<name>Antonio Frighetto</name>
<email>me@antoniofrighetto.com</email>
</author>
<published>2025-03-13T09:29:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=da69147a1619813679cef7ee39ec68cf2c8a2732'/>
<id>da69147a1619813679cef7ee39ec68cf2c8a2732</id>
<content type='text'>
Attributes inference has been improved for a few functions.
Particularly, ldexp and variants, as well as abort, may be
marked as `nounwind`, as they do not propagate any exceptions
to the caller, neither they unwind the stack. Besides, fwrite
and fread first argument should be respectively readonly and
writeonly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Attributes inference has been improved for a few functions.
Particularly, ldexp and variants, as well as abort, may be
marked as `nounwind`, as they do not propagate any exceptions
to the caller, neither they unwind the stack. Besides, fwrite
and fread first argument should be respectively readonly and
writeonly.
</pre>
</div>
</content>
</entry>
<entry>
<title>[InferAttrs] Mark floating-point libcalls as `errno`-writing</title>
<updated>2025-03-13T09:40:33+00:00</updated>
<author>
<name>Antonio Frighetto</name>
<email>me@antoniofrighetto.com</email>
</author>
<published>2025-03-13T09:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=139add531a5533a7591527a3e6cee7dca0f795c3'/>
<id>139add531a5533a7591527a3e6cee7dca0f795c3</id>
<content type='text'>
Floating-point libcalls are currently conservatively marked as
may write any memory. Restrict these to clobber only `errno`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Floating-point libcalls are currently conservatively marked as
may write any memory. Restrict these to clobber only `errno`.
</pre>
</div>
</content>
</entry>
</feed>
