<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/CodeGen/CGExpr.cpp, branch users/Prabhuk/sprasmprintercallgraphsection-emit-call-graph-section</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-04-03T22:20:04+00:00</updated>
<author>
<name>Necip Fazil Yildiran</name>
<email>necip@google.com</email>
</author>
<published>2024-04-03T22:20:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4963b5cf66f47be76d1db52caab0aa83e707538e'/>
<id>4963b5cf66f47be76d1db52caab0aa83e707538e</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>Revert "Revert "Revert "[clang][UBSan] Add implicit conversion check for bitfields""" (#87562)</title>
<updated>2024-04-03T22:19:03+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2024-04-03T22:19:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=029e1d751503268e3d8b01db769e710835c3010d'/>
<id>029e1d751503268e3d8b01db769e710835c3010d</id>
<content type='text'>
Reverts llvm/llvm-project#87529

Reverts #87518

https://lab.llvm.org/buildbot/#/builders/37/builds/33262 is still broken</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#87529

Reverts #87518

https://lab.llvm.org/buildbot/#/builders/37/builds/33262 is still broken</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Revert "[clang][UBSan] Add implicit conversion check for bitfields"" (#87529)</title>
<updated>2024-04-03T17:58:39+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2024-04-03T17:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8a5a1b770413bb62ff27cd8c2aea3d04b3a95bbe'/>
<id>8a5a1b770413bb62ff27cd8c2aea3d04b3a95bbe</id>
<content type='text'>
Reverts llvm/llvm-project#87518

Revert is not needed as the regression was fixed with
1189e87951e59a81ee097eae847c06008276fef1.

I assumed the crash and warning are different issues, but according to
https://lab.llvm.org/buildbot/#/builders/240/builds/26629
fixing warning resolves the crash.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#87518

Revert is not needed as the regression was fixed with
1189e87951e59a81ee097eae847c06008276fef1.

I assumed the crash and warning are different issues, but according to
https://lab.llvm.org/buildbot/#/builders/240/builds/26629
fixing warning resolves the crash.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang][UBSan] Add implicit conversion check for bitfields" (#87518)</title>
<updated>2024-04-03T17:27:09+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2024-04-03T17:27:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5822ca5a013256bbca33fbbae56f49caa2e37fe3'/>
<id>5822ca5a013256bbca33fbbae56f49caa2e37fe3</id>
<content type='text'>
Reverts llvm/llvm-project#75481

Breaks multiple bots, see #75481</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#75481

Breaks multiple bots, see #75481</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Fix a warning</title>
<updated>2024-04-03T16:55:45+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-04-03T16:55:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1189e87951e59a81ee097eae847c06008276fef1'/>
<id>1189e87951e59a81ee097eae847c06008276fef1</id>
<content type='text'>
This patch fixes:

  clang/lib/CodeGen/CGExpr.cpp:5607:11: error: variable 'Result' is
  used uninitialized whenever 'if' condition is false
  [-Werror,-Wsometimes-uninitialized]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes:

  clang/lib/CodeGen/CGExpr.cpp:5607:11: error: variable 'Result' is
  used uninitialized whenever 'if' condition is false
  [-Werror,-Wsometimes-uninitialized]
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][UBSan] Add implicit conversion check for bitfields (#75481)</title>
<updated>2024-04-03T12:55:03+00:00</updated>
<author>
<name>Axel Lundberg</name>
<email>19574357+Zonotora@users.noreply.github.com</email>
</author>
<published>2024-04-03T12:55:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=450f1952aced87584a53485d1ba1c2f77c3835a1'/>
<id>450f1952aced87584a53485d1ba1c2f77c3835a1</id>
<content type='text'>
This patch implements the implicit truncation and implicit sign change
checks for bitfields using UBSan. E.g.,
`-fsanitize=implicit-bitfield-truncation` and
`-fsanitize=implicit-bitfield-sign-change`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements the implicit truncation and implicit sign change
checks for bitfields using UBSan. E.g.,
`-fsanitize=implicit-bitfield-truncation` and
`-fsanitize=implicit-bitfield-sign-change`.</pre>
</div>
</content>
</entry>
<entry>
<title>[ubsan][NFC] Remove recently added `cl::init(false)`</title>
<updated>2024-04-01T20:37:42+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2024-04-01T20:05:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e93b5f5a4776ffea12d03652559dfdf8d421184c'/>
<id>e93b5f5a4776ffea12d03652559dfdf8d421184c</id>
<content type='text'>
Extracted from #84858
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extracted from #84858
</pre>
</div>
</content>
</entry>
<entry>
<title>[HLSL] Implement array temporary support (#79382)</title>
<updated>2024-04-01T17:10:10+00:00</updated>
<author>
<name>Chris B</name>
<email>chris.bieneman@me.com</email>
</author>
<published>2024-04-01T17:10:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9434c083475e42f47383f3067fe2a155db5c6a30'/>
<id>9434c083475e42f47383f3067fe2a155db5c6a30</id>
<content type='text'>
HLSL constant sized array function parameters do not decay to pointers.
Instead constant sized array types are preserved as unique types for
overload resolution, template instantiation and name mangling.

This implements the change by adding a new `ArrayParameterType` which
represents a non-decaying `ConstantArrayType`. The new type behaves the
same as `ConstantArrayType` except that it does not decay to a pointer.

Values of `ConstantArrayType` in HLSL decay during overload resolution
via a new `HLSLArrayRValue` cast to `ArrayParameterType`.

`ArrayParamterType` values are passed indirectly by-value to functions
in IR generation resulting in callee generated memcpy instructions.

The behavior of HLSL function calls is documented in the [draft language
specification](https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf)
under the Expr.Post.Call heading.

Additionally the design of this implementation approach is documented in
[Clang's
documentation](https://clang.llvm.org/docs/HLSL/FunctionCalls.html)

Resolves #70123</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
HLSL constant sized array function parameters do not decay to pointers.
Instead constant sized array types are preserved as unique types for
overload resolution, template instantiation and name mangling.

This implements the change by adding a new `ArrayParameterType` which
represents a non-decaying `ConstantArrayType`. The new type behaves the
same as `ConstantArrayType` except that it does not decay to a pointer.

Values of `ConstantArrayType` in HLSL decay during overload resolution
via a new `HLSLArrayRValue` cast to `ArrayParameterType`.

`ArrayParamterType` values are passed indirectly by-value to functions
in IR generation resulting in callee generated memcpy instructions.

The behavior of HLSL function calls is documented in the [draft language
specification](https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf)
under the Expr.Post.Call heading.

Additionally the design of this implementation approach is documented in
[Clang's
documentation](https://clang.llvm.org/docs/HLSL/FunctionCalls.html)

Resolves #70123</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers (#86923)</title>
<updated>2024-03-28T13:54:36+00:00</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanak@gmail.com</email>
</author>
<published>2024-03-28T13:54:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=84780af4b02cb3b86e4cb724f996bf8e02f2f2e7'/>
<id>84780af4b02cb3b86e4cb724f996bf8e02f2f2e7</id>
<content type='text'>
To authenticate pointers, CodeGen needs access to the key and
discriminators that were used to sign the pointer. That information is
sometimes known from the context, but not always, which is why `Address`
needs to hold that information.

This patch adds methods and data members to `Address`, which will be
needed in subsequent patches to authenticate signed pointers, and uses
the newly added methods throughout CodeGen. Although this patch isn't
strictly NFC as it causes CodeGen to use different code paths in some
cases (e.g., `mergeAddressesInConditionalExpr`), it doesn't cause any
changes in functionality as it doesn't add any information needed for
authentication.

In addition to the changes mentioned above, this patch introduces class
`RawAddress`, which contains a pointer that we know is unsigned, and
adds several new functions for creating `Address` and `LValue` objects.

This reapplies d9a685a9dd589486e882b722e513ee7b8c84870c, which was
reverted because it broke ubsan bots. There seems to be a bug in
coroutine code-gen, which is causing EmitTypeCheck to use the wrong
alignment. For now, pass alignment zero to EmitTypeCheck so that it can
compute the correct alignment based on the passed type (see function
EmitCXXMemberOrOperatorMemberCallExpr).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To authenticate pointers, CodeGen needs access to the key and
discriminators that were used to sign the pointer. That information is
sometimes known from the context, but not always, which is why `Address`
needs to hold that information.

This patch adds methods and data members to `Address`, which will be
needed in subsequent patches to authenticate signed pointers, and uses
the newly added methods throughout CodeGen. Although this patch isn't
strictly NFC as it causes CodeGen to use different code paths in some
cases (e.g., `mergeAddressesInConditionalExpr`), it doesn't cause any
changes in functionality as it doesn't add any information needed for
authentication.

In addition to the changes mentioned above, this patch introduces class
`RawAddress`, which contains a pointer that we know is unsigned, and
adds several new functions for creating `Address` and `LValue` objects.

This reapplies d9a685a9dd589486e882b722e513ee7b8c84870c, which was
reverted because it broke ubsan bots. There seems to be a bug in
coroutine code-gen, which is causing EmitTypeCheck to use the wrong
alignment. For now, pass alignment zero to EmitTypeCheck so that it can
compute the correct alignment based on the passed type (see function
EmitCXXMemberOrOperatorMemberCallExpr).</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers  (#86721)" (#86898)</title>
<updated>2024-03-28T01:14:04+00:00</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanak@gmail.com</email>
</author>
<published>2024-03-28T01:14:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f75eebab887903567906d22e790a3be20a2a6438'/>
<id>f75eebab887903567906d22e790a3be20a2a6438</id>
<content type='text'>
This reverts commit d9a685a9dd589486e882b722e513ee7b8c84870c.

The commit broke ubsan bots.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit d9a685a9dd589486e882b722e513ee7b8c84870c.

The commit broke ubsan bots.</pre>
</div>
</content>
</entry>
</feed>
