<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/IR/Core.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>[llvm-c] Add bindings for DbgRecord (#166383)</title>
<updated>2025-11-12T14:36:56+00:00</updated>
<author>
<name>Maxime Arthaud</name>
<email>arthaud@meta.com</email>
</author>
<published>2025-11-12T14:36:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=448146d6479cdfd6b7c80cb33dbaed882dead2f1'/>
<id>448146d6479cdfd6b7c80cb33dbaed882dead2f1</id>
<content type='text'>
In the LLVM-C library, there is currently no way to get information about a
DbgRecord - which is the new way to attach debug information to llvm
instructions.

We can only iterate on debug records with LLVMGetFirstDbgRecord/
LLVMGetLastDbgRecord/LLVMGetNextDbgRecord, but there is no way to read
information.

This PR adds utility functions to read DbgRecord information.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the LLVM-C library, there is currently no way to get information about a
DbgRecord - which is the new way to attach debug information to llvm
instructions.

We can only iterate on debug records with LLVMGetFirstDbgRecord/
LLVMGetLastDbgRecord/LLVMGetNextDbgRecord, but there is no way to read
information.

This PR adds utility functions to read DbgRecord information.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM-C] Allow `LLVMGetVolatile` to work with any kind of Instruction (#163060)</title>
<updated>2025-10-13T08:35:21+00:00</updated>
<author>
<name>AMS21</name>
<email>AMS21.github@gmail.com</email>
</author>
<published>2025-10-13T08:35:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9f552ee6d20040a4f007ac59c8fd8ad7acc58079'/>
<id>9f552ee6d20040a4f007ac59c8fd8ad7acc58079</id>
<content type='text'>
Allow LLVMGetVolatile() to work with any kind of Instruction, rather
than only memory instructions that accept a volatile flag. For
instructions that can never be volatile, the function now return false
instead of asserting. This matches the behavior of
`Instruction::isVolatile()` in the C++ API.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow LLVMGetVolatile() to work with any kind of Instruction, rather
than only memory instructions that accept a volatile flag. For
instructions that can never be volatile, the function now return false
instead of asserting. This matches the behavior of
`Instruction::isVolatile()` in the C++ API.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM-C] Upstream `LLVMGetOrInsertFunction` from rustc (#162235)</title>
<updated>2025-10-07T14:49:39+00:00</updated>
<author>
<name>AMS21</name>
<email>AMS21.github@gmail.com</email>
</author>
<published>2025-10-07T14:49:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=01f4510118b8a9a3ca1f7f1e4b19bd2e918c7dc0'/>
<id>01f4510118b8a9a3ca1f7f1e4b19bd2e918c7dc0</id>
<content type='text'>
Add `LLVMGetOrInsertFunction` to the C API as a thin wrapper over
`Module::getOrInsertFunction`, upstreamed from
[rustc](https://github.com/rust-lang/rust/blob/d773bd07d63a74adcf25ea5f4aae986be94cac5e/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp#L203).
It provides a single-call way to get or create a function declaration,
avoiding `LLVMGetNamedFunction` + `LLVMAddFunction` and is more
idiomatic.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `LLVMGetOrInsertFunction` to the C API as a thin wrapper over
`Module::getOrInsertFunction`, upstreamed from
[rustc](https://github.com/rust-lang/rust/blob/d773bd07d63a74adcf25ea5f4aae986be94cac5e/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp#L203).
It provides a single-call way to get or create a function declaration,
avoiding `LLVMGetNamedFunction` + `LLVMAddFunction` and is more
idiomatic.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-c] Add missing nullptr check in LLVMGetFirstDbgRecord (#151101)</title>
<updated>2025-10-05T08:01:19+00:00</updated>
<author>
<name>Maxime Arthaud</name>
<email>maxime@arthaud.me</email>
</author>
<published>2025-10-05T08:01:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0338350ccb506020529259427ec1c66ca6569749'/>
<id>0338350ccb506020529259427ec1c66ca6569749</id>
<content type='text'>
I'm using the LLVM C bindings through the llvm-sys rust crate, and
noticed that LLVMGetFirstDbgRecord and LLVMGetLastDbgRecord are
segfault-ing when called on instructions without debug markers. I found
out it's missing a null pointer check. This PR fixes the issue.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm using the LLVM C bindings through the llvm-sys rust crate, and
noticed that LLVMGetFirstDbgRecord and LLVMGetLastDbgRecord are
segfault-ing when called on instructions without debug markers. I found
out it's missing a null pointer check. This PR fixes the issue.</pre>
</div>
</content>
</entry>
<entry>
<title>Add LLVMGlobalAddDebugInfo to Core.cpp (#148747)</title>
<updated>2025-08-14T12:59:39+00:00</updated>
<author>
<name>peter mckinna</name>
<email>peter.mckinna@gmail.com</email>
</author>
<published>2025-08-14T12:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=002362bbd875d2892564779c5693dbb621dc7c1d'/>
<id>002362bbd875d2892564779c5693dbb621dc7c1d</id>
<content type='text'>
This change allows globals to have multiple metadata attached. The
GlobalSetMetadata function only allows only one and is clobbered if
more metadata is attempted to be added. The addDebugInfo
function calls addMetadata. This is needed because some languages have
global structs containing lots of compiler-generated globals.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change allows globals to have multiple metadata attached. The
GlobalSetMetadata function only allows only one and is clobbered if
more metadata is attempted to be added. The addDebugInfo
function calls addMetadata. This is needed because some languages have
global structs containing lots of compiler-generated globals.</pre>
</div>
</content>
</entry>
<entry>
<title>[C API] Add getter/setter for samesign flag on icmp (#145247)</title>
<updated>2025-06-22T22:05:17+00:00</updated>
<author>
<name>Benji Smith</name>
<email>6193112+Benjins@users.noreply.github.com</email>
</author>
<published>2025-06-22T22:05:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8f01edfa112f76050cf812a64f4e9c7baea52375'/>
<id>8f01edfa112f76050cf812a64f4e9c7baea52375</id>
<content type='text'>
This was added to the C++ API in
https://github.com/llvm/llvm-project/pull/111419 so this change adds
accessors in the C API, along with a couple tests.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was added to the C++ API in
https://github.com/llvm/llvm-project/pull/111419 so this change adds
accessors in the C API, along with a couple tests.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo][RemoveDIs] Delete debug-info-format flag (#143746)</title>
<updated>2025-06-12T10:51:58+00:00</updated>
<author>
<name>Jeremy Morse</name>
<email>jeremy.morse@sony.com</email>
</author>
<published>2025-06-12T10:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=97ac6483aaead89897d9bda8a12f1f4c11fad621'/>
<id>97ac6483aaead89897d9bda8a12f1f4c11fad621</id>
<content type='text'>
This flag was used to let us incrementally introduce debug records
into LLVM, however everything is now using records. It serves no
purpose now, so delete it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This flag was used to let us incrementally introduce debug records
into LLVM, however everything is now using records. It serves no
purpose now, so delete it.</pre>
</div>
</content>
</entry>
<entry>
<title>Remove GlobalObject::getAlign/setAlignment (#143188)</title>
<updated>2025-06-09T20:51:03+00:00</updated>
<author>
<name>Eli Friedman</name>
<email>efriedma@quicinc.com</email>
</author>
<published>2025-06-09T20:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9f82ac5738fced23716ac6f9c5744f99d6b6ba92'/>
<id>9f82ac5738fced23716ac6f9c5744f99d6b6ba92</id>
<content type='text'>
Currently, GlobalObject has an "alignment" property... but it's
basically nonsense: alignment doesn't mean the same thing for variables
and functions, and it's completely meaningless for ifuncs.

This "removes" (actually marking protected) the methods from
GlobalObject, adds the relevant methods to Function and GlobalVariable,
and adjusts the code appropriately.

This should make future alignment-related cleanups easier.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, GlobalObject has an "alignment" property... but it's
basically nonsense: alignment doesn't mean the same thing for variables
and functions, and it's completely meaningless for ifuncs.

This "removes" (actually marking protected) the methods from
GlobalObject, adds the relevant methods to Function and GlobalVariable,
and adjusts the code appropriately.

This should make future alignment-related cleanups easier.</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Teach getAsmString to return StringRef (NFC) (#139406)</title>
<updated>2025-05-11T05:59:09+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-11T05:59:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=50e949f3cc47ccae531f91d5126a313ccbd039ed'/>
<id>50e949f3cc47ccae531f91d5126a313ccbd039ed</id>
<content type='text'>
This is for consistency with #139401.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is for consistency with #139401.</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Teach getConstraintString to return StringRef (NFC) (#139401)</title>
<updated>2025-05-10T20:00:47+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-10T20:00:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=58014a506dd35df3f24320cf295945ad033d0e8c'/>
<id>58014a506dd35df3f24320cf295945ad033d0e8c</id>
<content type='text'>
With this change, some callers get to use StringRef::starts_with.

I'm planning to teach getAsmString to return StringRef also, but
I'ld like to keep that separate from this patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this change, some callers get to use StringRef::starts_with.

I'm planning to teach getAsmString to return StringRef also, but
I'ld like to keep that separate from this patch.</pre>
</div>
</content>
</entry>
</feed>
