<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/zero9178/qualified-trait</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>clang-format</title>
<updated>2024-02-02T12:13:01+00:00</updated>
<author>
<name>Markus Böck</name>
<email>markus.boeck02@gmail.com</email>
</author>
<published>2024-02-02T12:13:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9f2f00dc37d979b459c7d9d1dc6f52ec3466206'/>
<id>f9f2f00dc37d979b459c7d9d1dc6f52ec3466206</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Add `Print(Attr|Type)Qualified` trait</title>
<updated>2024-02-02T12:06:29+00:00</updated>
<author>
<name>Markus Böck</name>
<email>markus.boeck02@gmail.com</email>
</author>
<published>2024-02-02T10:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94c47995dff5a3a57b7066676dfe40b1caf713dc'/>
<id>94c47995dff5a3a57b7066676dfe40b1caf713dc</id>
<content type='text'>
This PR adds a new trait to attributes and types that force the use of the qualified syntax for attributes and types. More concretely, any attribute or type with the trait must be parsed and printed with the `dialect.mnemonic` prefix.

The motivation for this PR is the dependent PR where it is used to retain backwards-compatibility of syntax, but downstream projects may also use the trait if the subjectively prefer the verbose syntax.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds a new trait to attributes and types that force the use of the qualified syntax for attributes and types. More concretely, any attribute or type with the trait must be parsed and printed with the `dialect.mnemonic` prefix.

The motivation for this PR is the dependent PR where it is used to retain backwards-compatibility of syntax, but downstream projects may also use the trait if the subjectively prefer the verbose syntax.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang][AArch64] Add ACLE macros for FEAT_PAuth_LR (#80163)</title>
<updated>2024-02-01T10:24:38+00:00</updated>
<author>
<name>Lucas Duarte Prates</name>
<email>lucas.prates@arm.com</email>
</author>
<published>2024-02-01T10:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1bbb797e9c7f37aa814b9bbaba2961f730a26891'/>
<id>1bbb797e9c7f37aa814b9bbaba2961f730a26891</id>
<content type='text'>
This updates clang's target defines to include the ACLE changes covering
the FEAT_PAuth_LR architecture extension.
The changes include:
* The new `__ARM_FEATURE_PAUTH_LR` feature macro, which is set to 1 when
  FEAT_PAuth_LR is available in the target.
* A new bit field for the existing `__ARM_FEATURE_PAC_DEFAULT` macro,
  indicating the use of PC as a diversifier for Pointer Authentication
  (from -mbranch-protection=pac-ret+pc).

The approved changes to the ACLE spec can be found here:
https://github.com/ARM-software/acle/pull/292</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates clang's target defines to include the ACLE changes covering
the FEAT_PAuth_LR architecture extension.
The changes include:
* The new `__ARM_FEATURE_PAUTH_LR` feature macro, which is set to 1 when
  FEAT_PAuth_LR is available in the target.
* A new bit field for the existing `__ARM_FEATURE_PAC_DEFAULT` macro,
  indicating the use of PC as a diversifier for Pointer Authentication
  (from -mbranch-protection=pac-ret+pc).

The approved changes to the ACLE spec can be found here:
https://github.com/ARM-software/acle/pull/292</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][HLFIR] Relax verifiers of intrinsic operations (#80132)</title>
<updated>2024-02-01T10:23:24+00:00</updated>
<author>
<name>Tom Eccles</name>
<email>tom.eccles@arm.com</email>
</author>
<published>2024-02-01T10:23:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9e01675a31969d5ae7c250caa6efcc8dcdb80bc'/>
<id>e9e01675a31969d5ae7c250caa6efcc8dcdb80bc</id>
<content type='text'>
The verifiers are currently very strict: requiring intrinsic operations
to be used only in cases where the Fortran standard permits the
intrinsic to be used.

There have now been a lot of cases where these verifiers have caused
bugs in corner cases. In a recent ticket, @jeanPerier pointed out that
it could be useful for future optimizations if somewhat invalid uses of
these operations could be allowed in dead code. See this comment:
https://github.com/llvm/llvm-project/issues/79995#issuecomment-1918118234

In response to all of this, I have decided to relax the intrinsic
operation verifiers. The intention is now to only disallow operation
uses that are likely to crash the compiler. Other checks are still
available under `-strict-intrinsic-verifier`.

The disadvantage of this approach is that IR can now represent intrinsic
invocations which are incorrect. The lowering and implementation of
these intrinsic functions is unlikely to do the right thing in all of
these cases, and as they should mostly be impossible to generate using
normal Fortran code, these edge cases will see very little testing,
before some new optimization causes them to become more common.

Fixes #79995</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The verifiers are currently very strict: requiring intrinsic operations
to be used only in cases where the Fortran standard permits the
intrinsic to be used.

There have now been a lot of cases where these verifiers have caused
bugs in corner cases. In a recent ticket, @jeanPerier pointed out that
it could be useful for future optimizations if somewhat invalid uses of
these operations could be allowed in dead code. See this comment:
https://github.com/llvm/llvm-project/issues/79995#issuecomment-1918118234

In response to all of this, I have decided to relax the intrinsic
operation verifiers. The intention is now to only disallow operation
uses that are likely to crash the compiler. Other checks are still
available under `-strict-intrinsic-verifier`.

The disadvantage of this approach is that IR can now represent intrinsic
invocations which are incorrect. The lowering and implementation of
these intrinsic functions is unlikely to do the right thing in all of
these cases, and as they should mostly be impossible to generate using
normal Fortran code, these edge cases will see very little testing,
before some new optimization causes them to become more common.

Fixes #79995</pre>
</div>
</content>
</entry>
<entry>
<title>[bazel] Fix a typo from e7d40a87ff230528131541f6ac17a2e1a7dc78e1</title>
<updated>2024-02-01T10:02:39+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2024-02-01T10:02:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ca7fd25492388003fab4e19d7e95517bdee2d210'/>
<id>ca7fd25492388003fab4e19d7e95517bdee2d210</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-exegesis] Replace --num-repetitions with --min-instructions (#77153)</title>
<updated>2024-02-01T09:58:27+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>agrossman154@yahoo.com</email>
</author>
<published>2024-02-01T09:58:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=415bf200a725055a3a38e96269f4b752ea6fc330'/>
<id>415bf200a725055a3a38e96269f4b752ea6fc330</id>
<content type='text'>
This patch replaces --num-repetitions with --min-instructions to make it
more clear that the value refers to the minimum number of instructions
in the final assembled snippet rather than the number of repetitions of
the snippet. This patch also refactors some llvm-exegesis internal
variable names to reflect the name change.

Fixes #76890.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch replaces --num-repetitions with --min-instructions to make it
more clear that the value refers to the minimum number of instructions
in the final assembled snippet rather than the number of repetitions of
the snippet. This patch also refactors some llvm-exegesis internal
variable names to reflect the name change.

Fixes #76890.</pre>
</div>
</content>
</entry>
<entry>
<title>[bazel] Put back the pieces of TableGenGlobalISel that unittests depend on</title>
<updated>2024-02-01T09:56:22+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2024-02-01T09:56:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=395c8175e37248c11ddbffe47294033834b0ec51'/>
<id>395c8175e37248c11ddbffe47294033834b0ec51</id>
<content type='text'>
This is a mess and needs to be cleaned up some day.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a mess and needs to be cleaned up some day.
</pre>
</div>
</content>
</entry>
<entry>
<title>[bazel] Merge TableGenGlobalISel into the tablegen target</title>
<updated>2024-02-01T09:41:32+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2024-02-01T09:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=468b23935a56d2be75c1f86fea97e5620b230a93'/>
<id>468b23935a56d2be75c1f86fea97e5620b230a93</id>
<content type='text'>
These two are intertwined enough so it doesn't really make sense to have
it standalone and hack around it by putting headers into both.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These two are intertwined enough so it doesn't really make sense to have
it standalone and hack around it by putting headers into both.
</pre>
</div>
</content>
</entry>
<entry>
<title>[bazel] Add missing header for 7ec996d4c5c30083b070be4898140440094e6b97</title>
<updated>2024-02-01T09:34:57+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2024-02-01T09:34:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d0dbd50cf0dc85834842380235f445e80516cb59'/>
<id>d0dbd50cf0dc85834842380235f445e80516cb59</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title> [mlir][EmitC] Add func, call and return operations and conversions (#79612)</title>
<updated>2024-02-01T09:04:36+00:00</updated>
<author>
<name>Marius Brehler</name>
<email>marius.brehler@iml.fraunhofer.de</email>
</author>
<published>2024-02-01T09:04:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e7d40a87ff230528131541f6ac17a2e1a7dc78e1'/>
<id>e7d40a87ff230528131541f6ac17a2e1a7dc78e1</id>
<content type='text'>
This adds a `func`, `call` and `return` operation to the EmitC dialect,
closely related to the corresponding operations of the Func dialect. In
contrast to the operations of the Func dialect, the EmitC operations do
not support multiple results. The `emitc.func` op features a
`specifiers` argument that for example allows, with corresponding
support in the emitter, to emit `inline static` functions.

Furthermore, this adds patterns and a pass to convert the Func dialect
to EmitC. A `func.func` op that is `private` is converted to
`emitc.func` with a `"static"` specifier.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a `func`, `call` and `return` operation to the EmitC dialect,
closely related to the corresponding operations of the Func dialect. In
contrast to the operations of the Func dialect, the EmitC operations do
not support multiple results. The `emitc.func` op features a
`specifiers` argument that for example allows, with corresponding
support in the emitter, to emit `inline static` functions.

Furthermore, this adds patterns and a pass to convert the Func dialect
to EmitC. A `func.func` op that is `private` is converted to
`emitc.func` with a `"static"` specifier.</pre>
</div>
</content>
</entry>
</feed>
