Skip to content

Commit 08d720d

Browse files
lei137tru
authored andcommitted
[PowerPC] Update V17.0.0 release notes
1 parent 45c677d commit 08d720d

File tree

2 files changed

+86
-10
lines changed

2 files changed

+86
-10
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,10 @@ Non-comprehensive list of changes in this release
273273
types. This allows access to ``llvm.nearbyint`` for arbitrary
274274
floating-point and vector of floating-point types.
275275
- Clang AST matcher now matches concept declarations with `conceptDecl`.
276+
- Clang now supports more GCC stdio builtins: ``__builtin_vprintf``, ``__builtin_vfprintf``,
277+
``__builtin_fscanf``, ``__builtin_scanf``, ``__builtin_sscanf``, ``__builtin_vfscanf``,
278+
``__builtin_vscanf``, ``__builtin_vsscanf``.
279+
276280

277281
New Compiler Flags
278282
------------------
@@ -293,7 +297,11 @@ New Compiler Flags
293297
- ``-print-multi-flags-experimental`` prints the flags used for multilib
294298
selection. See `the multilib docs <https://clang.llvm.org/docs/Multilib.html>`_
295299
for more details.
296-
300+
- ``-maix32`` and ``-maix64`` are new GCC compatibility flags that select the
301+
bitmode to target on AIX.
302+
- ``-p`` is a new GCC compatibility flag for AIX and Linux which works
303+
similarly to ``-pg`` by writing profile information, but targets the ``prof``
304+
tool as opposed to the ``gprof`` tool.
297305

298306
Deprecated Compiler Flags
299307
-------------------------
@@ -713,6 +721,14 @@ Bug Fixes in This Version
713721
The current solution may bring performance regressions if the awaiters have
714722
non-static data members. See
715723
`#64945 <https://github.com/llvm/llvm-project/issues/64945>`_ for details.
724+
- Clang now correctly diagnoses ``function_needs_feature`` when always_inline
725+
callee has incompatible target features with caller.
726+
- Removed the linking of libraries when ``-r`` is passed to the driver on AIX.
727+
- Fixed an Itanium ABI bug where we force exactly two-byte alignment on member
728+
functions to reserve a bit in function pointers for identifying pointers to
729+
virtual member functions even if the target required a greater function
730+
alignment and/or did not have function pointers which point to function entry
731+
points (i.e., uses function descriptor objects instead).
716732

717733
Bug Fixes to Compiler Builtins
718734
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -991,10 +1007,19 @@ CUDA Support
9911007

9921008
AIX Support
9931009
^^^^^^^^^^^
994-
- Add an AIX-only link-time option, `-mxcoff-build-id=0xHEXSTRING`, to allow users
995-
to embed a hex id in their binary such that it's readable by the program itself.
996-
This option is an alternative to the `--build-id=0xHEXSTRING` GNU linker option
997-
which is currently not supported by the AIX linker.
1010+
- Enabled ThinLTO support. Minimum OS requirement is AIX 7.2 TL5 SP6 or
1011+
the upcoming AIX 7.3 TL2.
1012+
1013+
- Enabled integrated assembler (``-f[no-]integrated-as``) for LTO. LTO now
1014+
defaults to the integrated assembler.
1015+
1016+
- Enabled Clang-based instrumented profiling
1017+
(``-fprofile-instr-[generate|use]``).
1018+
1019+
- Added an AIX-only link-time option, ``-mxcoff-build-id=0xHEXSTRING``, to allow
1020+
users to embed a hex id in their binary such that it's readable by the program
1021+
itself. This option is an alternative to the ``--build-id=0xHEXSTRING`` GNU
1022+
linker option, which is currently not supported by the AIX linker.
9981023

9991024
- Introduced the ``-mxcoff-roptr`` option to place constant objects with
10001025
relocatable address values in the read-only data section. This option should
@@ -1003,6 +1028,14 @@ AIX Support
10031028
read-only data sections with relocatable address values that resolve to
10041029
imported symbols are made writable.
10051030

1031+
- Implemented the ``-frecord-command-line`` option on AIX, which saves the
1032+
command-line options used from compiling a source file to the corresponding
1033+
object file or binary file.
1034+
1035+
- Added a new linker option, ``-K``, that is used to align the header, text,
1036+
data, and loader sections of the output file so that each section begins on
1037+
a page boundary.
1038+
10061039
WebAssembly Support
10071040
^^^^^^^^^^^^^^^^^^^
10081041
- Shared library support (and PIC code generation) for WebAssembly is no longer
@@ -1019,6 +1052,11 @@ AVR Support
10191052
of ``USHRT_MAX`` is now ``unsigned int`` instead of ``int``, as required by
10201053
the C standard.
10211054

1055+
PowerPC Support
1056+
^^^^^^^^^^^^^^^
1057+
- Clang now emits errors when it detects incompatible target features for
1058+
PowerPC builtins.
1059+
10221060
DWARF Support in Clang
10231061
----------------------
10241062

llvm/docs/ReleaseNotes.rst

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,19 +230,57 @@ Changes to the MIPS Backend
230230
Changes to the PowerPC Backend
231231
------------------------------
232232

233+
* Improved code sequence of materializing 64-bit immediate numbers, expanding
234+
``is.fpclass`` intrinsic and forwarding stores.
235+
* Implemented DFP instructions (for use via inline asm).
236+
* Improved code gen for vector add.
237+
* Added ability to show statistics of number of entries in the TOC.
238+
* Added Binary Coded Decimal Assist instructions (for use via inline asm).
239+
* Added basic support for vector functions in GlobalISel.
240+
* Added additional X-Form load and store instruction generation for TLS accesses.
241+
* PPC64LE backend is added to JITLink.
242+
* Added various bug fixes and optimizations.
243+
* Added function pointer alignment to the DataLayout for Power, which lets us
244+
make more informed choices about what this alignment defaults to for various
245+
purposes (e.g., C++ pointers to member). If the target ABI uses function
246+
descriptor objects, this is the alignment we would emit the descriptor with.
247+
Otherwise, a function pointer points to a global entry point, so this is at
248+
least the alignment for code on Power (i.e., 4-bytes).
249+
250+
AIX Support/improvements:
251+
252+
233253
* A new option ``-mxcoff-roptr`` is added to ``clang`` and ``llc``. When this
234254
option is present, constant objects with relocatable address values are put
235-
into the RO data section. This option should be used with the ``-fdata-sections``
236-
option, and is not supported with ``-fno-data-sections``. The option is
237-
only supported on AIX.
238-
* On AIX, teach the profile runtime to check for a build-id string; such string
239-
can be created by the -mxcoff-build-id option.
255+
into the RO data section. This option should be used with the
256+
``-fdata-sections`` option, and is not supported with ``-fno-data-sections``.
257+
258+
* Taught the profile runtime to check for a build-id string. Build-id strings
259+
can be created via the ``-mxcoff-build-id`` option.
260+
240261
* Removed ``-ppc-quadword-atomics`` which only affected lock-free quadword
241262
atomics on AIX. Now backend generates lock-free quadword atomics code on AIX
242263
by default. To support lock-free quadword atomics in libatomic, the OS level
243264
must be at least AIX 7.2 TL5 SP3 with libc++.rte of version 17.1.1 or above
244265
installed.
245266

267+
* Integrated assembler is enabled by default on AIX.
268+
* System assembler is always used to compile assembly files on AIX.
269+
* Added support for local-exec TLS.
270+
* Added a new option, ``--traceback-table``, to ``llvm-objdump`` to print out
271+
the traceback table information for XCOFF object files.
272+
* Added ``llvm-ar`` object mode options ``-X32``, ``-X64``, ``-X32-64``,
273+
and ``-Xany``.
274+
* Changed the default name of the text-section csect to be an empty string
275+
instead of ``.text``. This change does not affect the behaviour
276+
of the program.
277+
* Fixed a problem when the personality routine for the legacy AIX ``xlclang++``
278+
compiler uses the stack slot to pass the exception object to the landing pad.
279+
Runtime routine ``__xlc_exception_handle()`` invoked by the landing pad to
280+
retrieve the exception object now skips frames not associated with functions
281+
that are C++ EH-aware because the compiler sometimes generates a wrapper of
282+
``__xlc_exception_handle()`` for optimization purposes.
283+
246284
Changes to the RISC-V Backend
247285
-----------------------------
248286

0 commit comments

Comments
 (0)