<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Support/CommandLine.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>[Support] Use range-based for loops (NFC) (#169001)</title>
<updated>2025-11-21T18:08:53+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-21T18:08:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=00fb67af95635009f1539c88e8706665f4a2d017'/>
<id>00fb67af95635009f1539c88e8706665f4a2d017</id>
<content type='text'>
Identified with modernize-loop-convert.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with modernize-loop-convert.</pre>
</div>
</content>
</entry>
<entry>
<title>[Support] Use "using" instead of "typedef" (NFC) (#166130)</title>
<updated>2025-11-03T16:41:32+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-03T16:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5ed8f4847673f69dfe984a9ad653035a06e265bb'/>
<id>5ed8f4847673f69dfe984a9ad653035a06e265bb</id>
<content type='text'>
Identified with modernize-use-using.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with modernize-use-using.</pre>
</div>
</content>
</entry>
<entry>
<title>[ADT, Support] Remove redundant typename (NFC) (#166045)</title>
<updated>2025-11-02T16:59:40+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-02T16:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=26c7d409996c64cc8fc3cf96ed59921be5282f6e'/>
<id>26c7d409996c64cc8fc3cf96ed59921be5282f6e</id>
<content type='text'>
Identified with readability-redundant-typename.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with readability-redundant-typename.</pre>
</div>
</content>
</entry>
<entry>
<title>Enable parsing of optional strings (#154364)</title>
<updated>2025-09-25T19:16:00+00:00</updated>
<author>
<name>Jacques Pienaar</name>
<email>jpienaar@google.com</email>
</author>
<published>2025-09-25T19:16:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=90a6884f2d088547f7b2650d2151a316b9694f59'/>
<id>90a6884f2d088547f7b2650d2151a316b9694f59</id>
<content type='text'>
Previously a "opt&lt;std::optional&lt;std::string&gt;&gt;&gt;" would fail to
parse/would attempt to parse option value as argument.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously a "opt&lt;std::optional&lt;std::string&gt;&gt;&gt;" would fail to
parse/would attempt to parse option value as argument.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm][clang] Pass VFS to `llvm::cl` command line handling (#159174)</title>
<updated>2025-09-18T21:53:40+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2025-09-18T21:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=152a2162a1a9c93358bb69ab839931d95b9537ad'/>
<id>152a2162a1a9c93358bb69ab839931d95b9537ad</id>
<content type='text'>
This PR passes the VFS down to `llvm::cl` functions so that they don't
assume the real file system.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR passes the VFS down to `llvm::cl` functions so that they don't
assume the real file system.</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply [IR] Remove options to make scalable TypeSize access a warning (#156336)</title>
<updated>2025-09-03T09:12:11+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-09-02T07:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cd7f7cf5cca6fa425523a5af9fd42f82c6566ebf'/>
<id>cd7f7cf5cca6fa425523a5af9fd42f82c6566ebf</id>
<content type='text'>
Reapplying now that buildbot has picked up the new configuration
that does not use -treat-scalable-fixed-error-as-warning.

-----

This removes the `LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS` cmake option
and the `-treat-scalable-fixed-error-as-warning` opt flag.

We stopped treating these as warnings by default a long time ago
(62f09d788f9fc540db12f3cfa2f98760071fca96), so I don't think it makes
sense to retain these options at this point. Accessing a scalable
TypeSize as fixed should always result in an error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reapplying now that buildbot has picked up the new configuration
that does not use -treat-scalable-fixed-error-as-warning.

-----

This removes the `LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS` cmake option
and the `-treat-scalable-fixed-error-as-warning` opt flag.

We stopped treating these as warnings by default a long time ago
(62f09d788f9fc540db12f3cfa2f98760071fca96), so I don't think it makes
sense to retain these options at this point. Accessing a scalable
TypeSize as fixed should always result in an error.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[IR] Remove options to make scalable TypeSize access a warning (#156336)"</title>
<updated>2025-09-02T07:52:37+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-09-02T07:52:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=95e76c14daff1adf5d9a4087d043da4d2a429573'/>
<id>95e76c14daff1adf5d9a4087d043da4d2a429573</id>
<content type='text'>
This reverts commit 8f59a946740bf8dbe2574b33eaa431fde3ce9204.

Failed on clang-aarch64-sve-vls-2stage, which still uses the option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8f59a946740bf8dbe2574b33eaa431fde3ce9204.

Failed on clang-aarch64-sve-vls-2stage, which still uses the option.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Remove options to make scalable TypeSize access a warning (#156336)</title>
<updated>2025-09-02T07:10:45+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-09-02T07:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8f59a946740bf8dbe2574b33eaa431fde3ce9204'/>
<id>8f59a946740bf8dbe2574b33eaa431fde3ce9204</id>
<content type='text'>
This removes the `LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS` cmake option
and the `-treat-scalable-fixed-error-as-warning` opt flag.

We stopped treating these as warnings by default a long time ago
(62f09d788f9fc540db12f3cfa2f98760071fca96), so I don't think it makes
sense to retain these options at this point. Accessing a scalable
TypeSize as fixed should always result in an error.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the `LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS` cmake option
and the `-treat-scalable-fixed-error-as-warning` opt flag.

We stopped treating these as warnings by default a long time ago
(62f09d788f9fc540db12f3cfa2f98760071fca96), so I don't think it makes
sense to retain these options at this point. Accessing a scalable
TypeSize as fixed should always result in an error.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] get cl::opt instantiations working with MSVC DLL build (#147810)</title>
<updated>2025-07-24T18:03:58+00:00</updated>
<author>
<name>Andrew Rogers</name>
<email>andrurogerz@gmail.com</email>
</author>
<published>2025-07-24T18:03:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04892228b1125723666c0df874797c51e4620e50'/>
<id>04892228b1125723666c0df874797c51e4620e50</id>
<content type='text'>
## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the `llvm::cl::opt` explicit
template instantiations for export with `LLVM_TEMPLATE_ABI` and
`LLVM_EXPORT_TEMPLATE`. This annotation currently has no meaningful
impact on the LLVM build; however, it is a prerequisite to support an
LLVM Windows DLL (shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

Annotating the `llvm::cl::opt` template instances for DLL export was not
straight-forward like other explicit template instances that have
already been annotated. Annotating them as documented
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst#templates)
results in link errors when building a Windows DLL using MSVC.

## Overview 
There are two specific issues that appear when exporting the
`llvm::cl::opt` templates and compiling a Windows DLL with MSVC:
1. We cannot export `opt&lt;std::string&gt;`. This is because MSVC exports all
ancestor classes when exporting an instantiated template class. Since
one of `opt`'s ancestor classes is its type argument (via
`opt_storage`), it is an ancestor of `std::string`. Therefore, if we
export `opt&lt;std::string&gt;` from the LLVM DLL, MSVC forces
`std::basic_string` to also be exported. This leads to duplicate symbol
errors and generally seems like a bad idea. Compiling with `clang-cl`
does not exhibit this behavior.
2. The `opt` template instances other than `opt&lt;bool&gt;` get optimized out
because they are not referenced in the TU (`opt&lt;bool&gt;` actually is). It
is unclear exactly why MSVC optimizes these template instances away, but
`clang-cl` does not. Adding explicit references to the instantiated
`opt` template classes' vtables via implicit virtual destructor forces
MSVC to export them.

## Validation
Windows with MSVC
Windows with Clang</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the `llvm::cl::opt` explicit
template instantiations for export with `LLVM_TEMPLATE_ABI` and
`LLVM_EXPORT_TEMPLATE`. This annotation currently has no meaningful
impact on the LLVM build; however, it is a prerequisite to support an
LLVM Windows DLL (shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

Annotating the `llvm::cl::opt` template instances for DLL export was not
straight-forward like other explicit template instances that have
already been annotated. Annotating them as documented
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst#templates)
results in link errors when building a Windows DLL using MSVC.

## Overview 
There are two specific issues that appear when exporting the
`llvm::cl::opt` templates and compiling a Windows DLL with MSVC:
1. We cannot export `opt&lt;std::string&gt;`. This is because MSVC exports all
ancestor classes when exporting an instantiated template class. Since
one of `opt`'s ancestor classes is its type argument (via
`opt_storage`), it is an ancestor of `std::string`. Therefore, if we
export `opt&lt;std::string&gt;` from the LLVM DLL, MSVC forces
`std::basic_string` to also be exported. This leads to duplicate symbol
errors and generally seems like a bad idea. Compiling with `clang-cl`
does not exhibit this behavior.
2. The `opt` template instances other than `opt&lt;bool&gt;` get optimized out
because they are not referenced in the TU (`opt&lt;bool&gt;` actually is). It
is unclear exactly why MSVC optimizes these template instances away, but
`clang-cl` does not. Adding explicit references to the instantiated
`opt` template classes' vtables via implicit virtual destructor forces
MSVC to export them.

## Validation
Windows with MSVC
Windows with Clang</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][ADT/Support] Add {} for else when if body has {} (#140758)</title>
<updated>2025-05-21T20:19:09+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-05-21T20:19:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a76bf4da53182baace54fd69f9d38fc10e6b8e85'/>
<id>a76bf4da53182baace54fd69f9d38fc10e6b8e85</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
