platform/upstream/llvm.git
16 months ago[lld][flang] Add exceptions for Flang runtime libraries on MinGW.
Martin Storsjö [Thu, 9 Mar 2023 10:55:53 +0000 (12:55 +0200)]
[lld][flang] Add exceptions for Flang runtime libraries on MinGW.

When linking a shared library with Flang on MinGW, the functions from the
Flang runtime are exported from the shared library. When trying to link an
executable to that library using Flang, the linker errors out because the
functions from the runtime conflict with the functions exported from the
shared library.

Add the Flang runtime libraries to the list of libraries for which no
symbols are exported.

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D145389

16 months ago[X86] Drop single use check for freeze(undef) in LowerAVXCONCAT_VECTORS
ManuelJBrito [Thu, 9 Mar 2023 10:57:05 +0000 (10:57 +0000)]
[X86] Drop single use check for freeze(undef) in LowerAVXCONCAT_VECTORS

Ignoring freeze(undef) if it has multiple uses in LowerAVXCONCAT_VECTORS
causes the custom INSERT_SUBVECTOR for vector widening to be ignored.

Differential Revision: https://reviews.llvm.org/D144903

16 months ago[clang][analyzer][NFC] Refactor code of StdLibraryFunctionsChecker.
Balázs Kéri [Thu, 9 Mar 2023 10:13:52 +0000 (11:13 +0100)]
[clang][analyzer][NFC] Refactor code of StdLibraryFunctionsChecker.

The code was difficult to maintain (big internal class definitions
with long inline functions, other functions of the same class at
different location far away, irregular ordering of classes and
function definitions). It is now improved to some extent.
New functions are added to RangeConstraint to remove code repetition,
these are useful for planned new features too.
Comments are improved.

Reviewed By: Szelethus

Differential Revision: https://reviews.llvm.org/D143751

16 months ago[bazel] Port for 0aac9a2875bad4f065367e4a6553fad78605f895
Haojian Wu [Thu, 9 Mar 2023 10:36:37 +0000 (11:36 +0100)]
[bazel] Port for 0aac9a2875bad4f065367e4a6553fad78605f895

16 months ago[OpenCL] Add builtin header TableGen emitter
Sven van Haastregt [Thu, 9 Mar 2023 10:20:04 +0000 (10:20 +0000)]
[OpenCL] Add builtin header TableGen emitter

Add an emitter to produce something similar to opencl-c.h from the
OpenCL builtin descriptions in OpenCLBuiltins.td

This only adds the emitter, without any direct use of it.  This allows
opencl-c.h additions to be generated from the builtin descriptions by
manually invoking `clang-tblgen -gen-clang-opencl-builtin-header`.

Differential Revision: https://reviews.llvm.org/D104040

16 months agoFix SGPR + VGPR + offset Scratch offset folding
Petar Avramovic [Wed, 8 Mar 2023 16:06:29 +0000 (17:06 +0100)]
Fix SGPR + VGPR + offset Scratch offset folding

Values in SGPR and VGPR register are treated as unsigned by hardware.

When value in 32-bit SGPR or VGPR base can be negative calculate offset
using 32-bit add instructions, otherwise use
sgpr(unsigned) + vgpr(unsigned) + offset.

LoopStrengthReduce.cpp changes offsets to negative and in some
iterations value in SGPR or VGPR register could be negative.

Differential Revision: https://reviews.llvm.org/D144957

16 months agoFix VGPR + offset Scratch offset folding
Petar Avramovic [Wed, 8 Mar 2023 15:42:14 +0000 (16:42 +0100)]
Fix VGPR + offset Scratch offset folding

Values in VGPR register are treated as unsigned by hardware.

When value in 32-bit VGPR base can be negative calculate offset using
32-bit add instruction, otherwise use vgpr base(unsigned) + offset.
Does not affect case where whole offset comes from VGPR register
(immediate offset is 0).

LoopStrengthReduce.cpp changes offsets to negative and in some
iterations value in VGPR register could be negative.

Differential Revision: https://reviews.llvm.org/D144956

16 months agoFix SGPR + offset Scratch offset folding
Petar Avramovic [Wed, 8 Mar 2023 15:18:56 +0000 (16:18 +0100)]
Fix SGPR + offset Scratch offset folding

Values in SGPR register are treated as unsigned by hardware.

When value in 32-bit SGPR base can be negative calculate offset using
32-bit add instruction, otherwise use sgpr base(unsigned) + offset.
Does not affect case where whole offset comes from SGPR register
(immediate offset is 0).

LoopStrengthReduce.cpp changes offsets to negative and in some
iterations value in SGPR register could be negative.

Differential Revision: https://reviews.llvm.org/D144955

16 months ago[IR][DAG][RISCV] Allow scalable vector ISD::STRICT_FP_EXTEND and RISC-V supports...
Yeting Kuo [Tue, 7 Mar 2023 12:06:19 +0000 (20:06 +0800)]
[IR][DAG][RISCV] Allow scalable vector ISD::STRICT_FP_EXTEND and RISC-V supports for vector ISD::STRICT_FP_EXTEND.

The patch mainly does two things. The first is allowing scalable vector
ISD::STRICT_FP_EXTEND. The second is making RISC-V customized lower
strict_fpextend to riscv_strict_fpextend_vl, the strict version of
riscv_fpextend_vl.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D145548

16 months ago[Modules] Remove unnecessary check when generating name lookup table in ASTWriter
Chuanqi Xu [Thu, 9 Mar 2023 09:25:59 +0000 (17:25 +0800)]
[Modules] Remove unnecessary check when generating name lookup table in ASTWriter

Close https://github.com/llvm/llvm-project/issues/61065.

We will avoid writing the names from external AST naturally. But
currently its check is often false positive since we may have already
marked the declarations as external but
DeclContext::hasNeedToReconcileExternalVisibleStorage would be false
after reconciling.

Tested with libcxx's modular build.

This patch can improve 8% compilation time in an internal workloads.

16 months ago[IPSCCP] Don't require noundef for !range annotation
Nikita Popov [Tue, 21 Feb 2023 11:00:11 +0000 (12:00 +0100)]
[IPSCCP] Don't require noundef for !range annotation

Since https://reviews.llvm.org/D141386 !range violations return
poison instead of causing immediate undefined behavior. As such,
it is fine for IPSCCP to infer !range even if the value might be
poison. (The value cannot be undef as this would promote undef to
poison, but this is already checked separately.)

This basically undoes the late change done to D83952, restoring
it to its original version (which is now valid).

Differential Revision: https://reviews.llvm.org/D144467

16 months ago[LangRef] Use new memory attribute syntax (NFC)
Nikita Popov [Thu, 9 Mar 2023 09:18:20 +0000 (10:18 +0100)]
[LangRef] Use new memory attribute syntax (NFC)

Use the memory() spelling in a few places that were using the
old syntax.

The documented attributes for llvm.type.checked.load don't match
the actual attributes, I've raised this here:
https://reviews.llvm.org/D21121#inline-1406792

16 months ago[SROA] Fix bug where CandidateTys is appended while being iterated
Han Zhu [Thu, 9 Mar 2023 09:16:04 +0000 (01:16 -0800)]
[SROA] Fix bug where CandidateTys is appended while being iterated

Fix a crash when compiling Skia. See https://reviews.llvm.org/D143225#4180342
for more details

16 months ago[SanitizerBinaryMetadata] Do not add to GPU code
Marco Elver [Tue, 7 Mar 2023 19:00:12 +0000 (20:00 +0100)]
[SanitizerBinaryMetadata] Do not add to GPU code

SanitizerBinaryMetadata should only apply to to host code, and not GPU
code. Recently AMD GPU target code has experimental sanitizer support.

If we're compiling a mixed host/device source file, only add sanitizer
metadata to host code.

Differential Revision: https://reviews.llvm.org/D145519

16 months ago[llvm][TableGen][Jupyter] Correct notebook name in example command
David Spickett [Thu, 9 Mar 2023 09:14:13 +0000 (09:14 +0000)]
[llvm][TableGen][Jupyter] Correct notebook name in example command

16 months ago[llvm-c] Remove PassManagerBuilder APIs
Nikita Popov [Mon, 6 Mar 2023 15:53:35 +0000 (16:53 +0100)]
[llvm-c] Remove PassManagerBuilder APIs

The legacy PM is only supported for codegen, and PassManagerBuilder
is exclusively about the middle-end optimization pipeline. Drop it.

Differential Revision: https://reviews.llvm.org/D145387

16 months ago[libc][Obvious] Fix bad include and type in threads/tss_get.h.
Siva Chandra Reddy [Thu, 9 Mar 2023 08:38:02 +0000 (08:38 +0000)]
[libc][Obvious] Fix bad include and type in threads/tss_get.h.

16 months ago[Tooling/Inclusion] Add atomic family symbols
Haojian Wu [Wed, 8 Mar 2023 09:42:19 +0000 (10:42 +0100)]
[Tooling/Inclusion] Add atomic family symbols

Differential Revision: https://reviews.llvm.org/D145557

16 months ago[Tooling/Inclusion] Add missing placerholder _1 symbols.
Haojian Wu [Wed, 8 Mar 2023 08:49:40 +0000 (09:49 +0100)]
[Tooling/Inclusion] Add missing placerholder _1 symbols.

Differential Revision: https://reviews.llvm.org/D145553

16 months ago[doc] Deprecate the '-fmodule-file=<module-name>=<path-BMI>' for named modules in...
Chuanqi Xu [Thu, 9 Mar 2023 08:18:55 +0000 (16:18 +0800)]
[doc] Deprecate the '-fmodule-file=<module-name>=<path-BMI>' for named modules in the document

The option '-fmodule-file=<module-name>=<path-BMI>' is already
deprecated now. This patch mentions it in the document.

16 months ago[libc][NFC] Compile tests also with -fpie.
Siva Chandra Reddy [Thu, 9 Mar 2023 07:41:06 +0000 (07:41 +0000)]
[libc][NFC] Compile tests also with -fpie.

The libc runtime code is already compiled with -fpie.

16 months ago[bazel] Don't alwayslink clang-tidy libraries
Aaron Siddhartha Mondal [Thu, 9 Mar 2023 07:43:20 +0000 (08:43 +0100)]
[bazel] Don't alwayslink clang-tidy libraries

These libraries are only ever used in clang-tidy itself, so there is no
need to unconditionally keep all symbols.

Reviewed By: GMNGeoffrey, #bazel_build

Differential Revision: https://reviews.llvm.org/D145258

16 months ago[compiler-rt] Avoid signed shift overflow in __muloXi4 and __mulvXi3
Karl-Johan Karlsson [Thu, 9 Mar 2023 07:37:47 +0000 (08:37 +0100)]
[compiler-rt] Avoid signed shift overflow in __muloXi4 and __mulvXi3

When compiling compiler-rt with -fsanitize=undefined and running testcases you
end up with the following warning:

UBSan: int_mulo_impl.inc:21:36: left shift of 1 by 63 places cannot be represented in type 'di_int' (aka 'long long')

This can be avoided by simply doing the shift in a matching unsigned variant of
the type.

The same kind of pattern seems to exist in int_mulv_impl.inc

This was found in an out of tree target.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D145556

16 months ago[libc][Obvious] Add missing dep to include.sys_mman.
Siva Chandra Reddy [Thu, 9 Mar 2023 07:25:35 +0000 (07:25 +0000)]
[libc][Obvious] Add missing dep to include.sys_mman.

16 months ago[mlir][llvm] Add inalloca attribute to alloca op.
Théo Degioanni [Thu, 9 Mar 2023 07:10:36 +0000 (08:10 +0100)]
[mlir][llvm] Add inalloca attribute to alloca op.

This revision adds the inalloca attribute to the alloca operation in the LLVMIR dialect.
It also adds tests for import and export.

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D145483

16 months ago[RISCV] Enable subregister liveness by default
Piyou Chen [Thu, 9 Mar 2023 06:17:19 +0000 (22:17 -0800)]
[RISCV] Enable subregister liveness by default

This commit enable the subregister liveness by default in RISC-V.

It was previously disabled in https://reviews.llvm.org/D129646 after a previous attempt to enabled it https://reviews.llvm.org/D128016.

We believe that https://reviews.llvm.org/D129735 fixes the issue that caused it to be disabled.

Reviewed By: craig.topper, kito-cheng

Differential Revision: https://reviews.llvm.org/D145546

16 months ago[RISCV] Don't try to use fli.h with Zfa+Zfhmin.
Craig Topper [Thu, 9 Mar 2023 06:54:25 +0000 (22:54 -0800)]
[RISCV] Don't try to use fli.h with Zfa+Zfhmin.

fli.h requires Zfh or Zvfh. We need to check for this in
isFPImmLegal. Zvfh support will come in another patch.

I had to split the test file because there are other issues with
Zfhmin and some intrinsics.

16 months ago[X86][MemFold] Update some records for X86MemFoldTables.inc
Bing1 Yu [Wed, 8 Feb 2023 07:08:16 +0000 (15:08 +0800)]
[X86][MemFold] Update some records for X86MemFoldTables.inc

Update X86MemFoldTables.inc according to https://reviews.llvm.org/D142084's auto-gen table

Reviewed By: skan

Differential Revision: https://reviews.llvm.org/D143149

16 months ago[libc++][test] Fix transitive_includes
Igor Zhukov [Thu, 9 Mar 2023 05:58:13 +0000 (12:58 +0700)]
[libc++][test] Fix transitive_includes

Reviewed By: #libc

Differential Revision: https://reviews.llvm.org/D145651

16 months ago[lldb] Fix -Wdangling-else warning in CommunicationTest
Jonas Devlieghere [Thu, 9 Mar 2023 06:21:00 +0000 (22:21 -0800)]
[lldb] Fix -Wdangling-else warning in CommunicationTest

Fixed warning: suggest explicit braces to avoid ambiguous ‘else’
[-Wdangling-else]

16 months ago[lldb] Fix typo in SymbolVendorELF
Jonas Devlieghere [Thu, 9 Mar 2023 06:15:35 +0000 (22:15 -0800)]
[lldb] Fix typo in SymbolVendorELF

16 months agolldb] Re-enable TestSymbolFileJSON on non Darwin platforms
Jonas Devlieghere [Thu, 9 Mar 2023 06:11:23 +0000 (22:11 -0800)]
lldb] Re-enable TestSymbolFileJSON on non Darwin platforms

Fix the crash in SymbolVendorELF and re-enable the test.

16 months ago[RISCV] Remove seemingly unneeded !isPosZero from Zfa code in isFPImmLegal.
Craig Topper [Thu, 9 Mar 2023 06:05:52 +0000 (22:05 -0800)]
[RISCV] Remove seemingly unneeded !isPosZero from Zfa code in isFPImmLegal.

This was added after the patch was approved. I'm not sure why its
there. It doesn't fire in any lit test.

16 months ago[RISCV] Remove some trailing whitespace. NFC
Craig Topper [Thu, 9 Mar 2023 05:33:36 +0000 (21:33 -0800)]
[RISCV] Remove some trailing whitespace. NFC

16 months ago[lldb] Temporarily disable TestSymbolFileJSON on non Darwin platforms
Jonas Devlieghere [Thu, 9 Mar 2023 05:29:16 +0000 (21:29 -0800)]
[lldb] Temporarily disable TestSymbolFileJSON on non Darwin platforms

The new test is triggering a crash in LLDB on the Windows and Linux
bots. Temporarily disable the test while I investigate.

16 months ago[polly] Remove unused variable 'VectorLoops' in IslNodeBuilder.cpp (NFC)
Jie Fu [Thu, 9 Mar 2023 04:51:22 +0000 (12:51 +0800)]
[polly] Remove unused variable 'VectorLoops' in IslNodeBuilder.cpp (NFC)

/home/jiefu/llvm-project/polly/lib/CodeGen/IslNodeBuilder.cpp:80:11: error: unused variable 'VectorLoops' [-Werror,-Wunused-variable]
STATISTIC(VectorLoops, "Number of generated vector for-loops");
          ^
1 error generated.

16 months agoDisable test for __builtin_set_flt_rounds to avoid breaking PPC buildbot
jinge90 [Thu, 9 Mar 2023 05:13:50 +0000 (13:13 +0800)]
Disable test for __builtin_set_flt_rounds to avoid breaking PPC buildbot

Signed-off-by: jinge90 <ge.jin@intel.com>
16 months ago[lldb] Introduce new SymbolFileJSON and ObjectFileJSON
Jonas Devlieghere [Thu, 9 Mar 2023 02:28:50 +0000 (18:28 -0800)]
[lldb] Introduce new SymbolFileJSON and ObjectFileJSON

Introduce a new object and symbol file format with the goal of mapping
addresses to symbol names. I'd like to think of is as an extremely
simple textual symtab. The file format consists of a triple, a UUID and
a list of symbols. JSON is used for the encoding, but that's mostly an
implementation detail. The goal of the format was to be simple and human
readable.

The new file format is motivated by two use cases:

 - Stripped binaries: when a binary is stripped, you lose the ability to
   do thing like setting symbolic breakpoints. You can keep the
   unstripped binary around, but if all you need is the stripped
   symbols then that's a lot of overhead. Instead, we could save the
   stripped symbols to a file and load them in the debugger when
   needed. I want to extend llvm-strip to have a mode where it emits
   this new file format.

 - Interactive crashlogs: with interactive crashlogs, if we don't have
   the binary or the dSYM for a particular module, we currently show an
   unnamed symbol for those frames. This is a regression compared to the
   textual format, that has these frames pre-symbolicated. Given that
   this information is available in the JSON crashlog, we need a way to
   tell LLDB about it. With the new symbol file format, we can easily
   synthesize a symbol file for each of those modules and load them to
   symbolicate those frames.

Here's an example of the file format:

 {
     "triple": "arm64-apple-macosx13.0.0",
     "uuid": "36D0CCE7-8ED2-3CA3-96B0-48C1764DA908",
     "symbols": [
         {
             "name": "main",
             "type": "code",
             "size": 32,
             "address": 4294983568
         },
         {
             "name": "foo",
             "type": "code",
             "size": 8,
             "address": 4294983560
         }
     ]
 }

Differential revision: https://reviews.llvm.org/D145180

16 months agoRevert "Add map info for dereference pointer."
Ron Lieberman [Thu, 9 Mar 2023 04:01:22 +0000 (22:01 -0600)]
Revert "Add map info for dereference pointer."

breaks amdgpu buildbot

This reverts commit 0f2f378425821de77e50a0dcb67c4504389a56e8.

16 months ago[clang][nfc] Update some documentation referring to old clang flags
Nathan Lanza [Thu, 9 Mar 2023 04:01:52 +0000 (23:01 -0500)]
[clang][nfc] Update some documentation referring to old clang flags

-cfg-dump and -cfg-view were removed long ago. The rest are gone, but
I'm opting not to remove these lines without finding a replacement.

16 months agoAdd __builtin_set_flt_rounds
jinge90 [Thu, 9 Mar 2023 03:48:51 +0000 (11:48 +0800)]
Add __builtin_set_flt_rounds

This builtin will be converted to llvm.set.rounding intrinsic
in IR level and should be work with "#pragma STDC FENV_ACCESS ON"
since it changes default FP environment. Users can change rounding
mode via this builtin without introducing libc dependency.

Reviewed by: andrew.w.kaylor, rjmccall, sepavloff
Differential Revision: https://reviews.llvm.org/D144454
Signed-off-by: jinge90 <ge.jin@intel.com>
16 months ago[mlir] Fix -Wdeprecated-copy in SparseTensorType.h (NFC)
Jie Fu [Thu, 9 Mar 2023 02:35:01 +0000 (10:35 +0800)]
[mlir] Fix -Wdeprecated-copy in SparseTensorType.h (NFC)

/data/jiefu/llvm-project/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h:63:21: error: definition of implicit copy constructor for 'SparseTensorType' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
  SparseTensorType &operator=(const SparseTensorType &) = delete;
                    ^
/data/jiefu/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorStorageLayout.h:239:9: note: in implicit copy constructor for 'mlir::sparse_tensor::SparseTensorType' first required here
      : rType(stt), fields(fields) {
        ^
1 error generated.

16 months ago[libc++] Add missing includes to __format/container_adaptor.h
Nikolas Klauser [Thu, 9 Mar 2023 02:29:12 +0000 (03:29 +0100)]
[libc++] Add missing includes to __format/container_adaptor.h

16 months agoClean up conditional, don't set load binaries twice
Jason Molenda [Thu, 9 Mar 2023 01:59:46 +0000 (17:59 -0800)]
Clean up conditional, don't set load binaries twice

Follow Alex Langford's feedback to my patch from
https://reviews.llvm.org/D145547 , and fix a
side issue I noticed while testing this, where
binaries loaded via LC_NOTE metadata were loaded
in the Target twice unnecessarily.

16 months agoAdd map info for dereference pointer.
Jennifer Yu [Wed, 1 Mar 2023 16:22:21 +0000 (08:22 -0800)]
Add map info for dereference pointer.

This is to fix run time problem when use:

int **a;
map((*a)[:3]), (*a)[1] or map(**a).

current we skip generate map info for dereference pointer:
&(*a), &(*a)[0], 3*sizeof(int), TARGET_PARAM | TO | FROM

One way to fix runtime problem is to generate map info for dereference
pointer.

map((*a)[:3]):
&(*a), &(*a), sizeof(pointer),  TARGET_PARAM | TO | FROM
&(*a), &(*a)[0], 3*sizeof(int),  PTR_AND_OBJ | TO | FROM

map(**a):
&(*a), &(*a), sizeof(pointer),  TARGET_PARAM | TO | FROM
&(*a), &(**a), sizeof(int),  PTR_AND_OBJ | TO | FROM

The change in CGOpenMPRuntime.cpp add that.

The change in SemaOpenMP is to fix variable of dereference pointer to array
captured by reference.  That is wrong. That cause run time to fail.

The rule is:
If variable is identified in a map clause it is always captured by
reference except if it is a pointer that is dereferenced somehow.

Differential Revision: https://reviews.llvm.org/D145093

16 months ago[RISCV] Add more testcases for overflow-intrinsics.ll
LiaoChunyu [Thu, 9 Mar 2023 01:13:30 +0000 (09:13 +0800)]
[RISCV] Add more testcases for overflow-intrinsics.ll

16 months agoDon't load non-kexts in darwin kernel debug; handle unslid segs
Jason Molenda [Thu, 9 Mar 2023 00:49:28 +0000 (16:49 -0800)]
Don't load non-kexts in darwin kernel debug; handle unslid segs

We have some non-kexts in the binary list in the Darwin kernel
in some situations.  The binary has likely already been loaded;
check if it has been, and don't re-load it.  Also, if we do need
to load it at this point, if in-memory segment vmaddrs have not
been updated to the actual load addresses, calculate a fixed slide
for the in-memory image and apply that slide to the ondisk binary.

Differential Revision: https://reviews.llvm.org/D145547
rdar://106343477

16 months ago[mlir][sparse] Factoring out Merger::expIsTensor
wren romano [Wed, 8 Mar 2023 23:20:10 +0000 (15:20 -0800)]
[mlir][sparse] Factoring out Merger::expIsTensor

Depends On D145611

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D145620

16 months ago[lldb] Make repeat commands work for regex commands
Dave Lee [Mon, 6 Feb 2023 22:58:11 +0000 (14:58 -0800)]
[lldb] Make repeat commands work for regex commands

Fix logic for repeat commands, so that regex commands (specificially `bt`) are
given the opportunity to provide a repeat command.

rdar://104562616

Differential Revision: https://reviews.llvm.org/D143695

16 months agoRevert "[lld-macho] Warn on method name collisions from category definitions"
Jez Ng [Wed, 8 Mar 2023 23:57:24 +0000 (15:57 -0800)]
Revert "[lld-macho] Warn on method name collisions from category definitions"

This reverts commit ef122753db7fe8e9a0b7bedd46d2f3668a780fcb.

Apparently it is causing some crashes:
https://reviews.llvm.org/D142916#4178869

16 months ago[Polly] Remove Polly-ACC.
Michael Kruse [Wed, 25 Jan 2023 20:03:57 +0000 (14:03 -0600)]
[Polly] Remove Polly-ACC.

Polly-ACC is unmaintained and since it has never been ported to the NPM pipeline, since D136621 it is not even accessible anymore without manually specifying the passes on the `opt` command line.

Since there is no plan to put it to a maintainable state, remove it from Polly.

Reviewed By: grosser

Differential Revision: https://reviews.llvm.org/D142580

16 months ago[mlir][sparse] Making SortMask into an enum-class
wren romano [Wed, 8 Mar 2023 21:42:07 +0000 (13:42 -0800)]
[mlir][sparse] Making SortMask into an enum-class

This helps to reduce the confusion from using `unsigned` everywhere.

Depends On D145606

Reviewed By: Peiming

Differential Revision: https://reviews.llvm.org/D145611

16 months ago[NFC][AArch64] Document and improve FMV code.
Pavel Iliin [Wed, 8 Mar 2023 01:19:02 +0000 (01:19 +0000)]
[NFC][AArch64] Document and improve FMV code.

Differential Revision: https://reviews.llvm.org/D145538

16 months ago[mlir][sparse] Making deletion of SparseTensorType copy-assignment explicit
wren romano [Wed, 8 Mar 2023 21:10:26 +0000 (13:10 -0800)]
[mlir][sparse] Making deletion of SparseTensorType copy-assignment explicit

The copy assignment is already implicitly deleted, but making it explicit helps clean up compilation error messages.

Reviewed By: Peiming

Differential Revision: https://reviews.llvm.org/D145606

16 months ago[LSAN] Disable leaks in test using environment variables instead of not running them...
Kirill Stoimenov [Wed, 8 Mar 2023 22:04:40 +0000 (22:04 +0000)]
[LSAN] Disable leaks in test using environment variables instead of not running them with ASAN.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D145615

16 months ago[libc] Widen the riscv64 full build config.
Siva Chandra [Wed, 8 Mar 2023 22:45:20 +0000 (22:45 +0000)]
[libc] Widen the riscv64 full build config.

16 months ago[scudo] Shuffle the regions
Chia-hung Duan [Wed, 8 Mar 2023 22:46:53 +0000 (22:46 +0000)]
[scudo] Shuffle the regions

Shuffle the regions' base address so that the layout of all regions is
less predictable.

Reviewed By: cferris, cryptoad

Differential Revision: https://reviews.llvm.org/D145407

16 months ago[flang] Fix linker test on Windows.
Michael Kruse [Wed, 8 Mar 2023 18:56:29 +0000 (12:56 -0600)]
[flang] Fix linker test on Windows.

The linker-flags.f90 test checks for the linker command line. The `-target` indicates cross-compiling, the toolchain executables themselves are still running on the native platform. If it is Windows, the driver will try to fully resolve the path to `ld` which may include an `.exe` suffix.

In my case, it resolves to the MinGW installation (`"C:\\tools\\msys64\\usr\\bin\\ld.exe"`) found in `PATH`. The GNU ld that comes with the MSYS2 distribution does not support `elf64lppc` or MacOS emulation modes (`acosx_version_min`), but the test also does not require executing the linker.

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D144592

16 months ago[mlir][linalg] Downscale 2D convolution with unit dimensions to 1D convolution
Devajith Valaparambil Sreeramaswamy [Wed, 8 Mar 2023 22:30:16 +0000 (14:30 -0800)]
[mlir][linalg] Downscale 2D convolution with unit dimensions to 1D convolution

Decompose conv_2d -> conv_1d.

This MR follows a similar approach to https://reviews.llvm.org/D112928.

This patch adds support to convert conv_2D operation with either unit height or unit width to conv_1D operation.

This is useful when 2D convolution is tiled to have a single dimension for either height or width and then can be vectorized once it is decomposed into 1D convolution.

This patch https://reviews.llvm.org/D145160 adds vector support for linalg.conv_1d operation and thereby allowing us to vectorize linalg.conv_2d operation after proper tiling.

This missing feature is reported here: https://discourse.llvm.org/t/vectorization-of-convolution-op/60458.

Reviewed By: hanchung

Differential Revision: https://reviews.llvm.org/D145162

16 months ago[Tests] Precommit tests for D145616
Anna Thomas [Wed, 8 Mar 2023 22:29:43 +0000 (17:29 -0500)]
[Tests] Precommit tests for D145616

16 months ago[mlir][linalg] Add vectorization support for conv_1d
Devajith Valaparambil Sreeramaswamy [Wed, 8 Mar 2023 19:29:20 +0000 (11:29 -0800)]
[mlir][linalg] Add vectorization support for conv_1d

This MR add vectorization support for linalg.conv_1D operation.

Reviewed By: nicolasvasilache, hanchung, dcaballe, vmurali

Differential Revision: https://reviews.llvm.org/D145160

16 months ago[lldb] Only replace valobj with persisted one if not null in DWIMPrint
Augusto Noronha [Wed, 8 Mar 2023 21:42:11 +0000 (13:42 -0800)]
[lldb] Only replace valobj with persisted one if not null in DWIMPrint

Differential Revision: https://reviews.llvm.org/D145612

16 months ago[RISCV] Parse Zfa fli instructions using double precision.
Craig Topper [Wed, 8 Mar 2023 22:16:06 +0000 (14:16 -0800)]
[RISCV] Parse Zfa fli instructions using double precision.

Makes it harder to write an inexact constant that gets parsed as
a valid constant.

16 months ago[hwasan] Increase allocator space for non-android Linux
Vitaly Buka [Wed, 8 Mar 2023 01:18:01 +0000 (17:18 -0800)]
[hwasan] Increase allocator space for non-android Linux

This is max acceptable value with pow of 2 for DefaultSizeClassMap, the
same as for ASAN.

Reviewed By: kstoimenov

Differential Revision: https://reviews.llvm.org/D145536

16 months ago[AMDGPU] Implement idempotent atomic lowering
Stanislav Mekhanoshin [Fri, 24 Feb 2023 21:25:41 +0000 (13:25 -0800)]
[AMDGPU] Implement idempotent atomic lowering

This turns an idempotent atomic operation into an atomic load.

Fixes: SWDEV-385135

Differential Revision: https://reviews.llvm.org/D144759

16 months ago[M68k] Add support for basic memory constraints in inline asm
Min-Yih Hsu [Tue, 7 Feb 2023 19:24:11 +0000 (11:24 -0800)]
[M68k] Add support for basic memory constraints in inline asm

This patch adds support for 'm', 'Q', and 'U' memory constraints.

Differential Revision: https://reviews.llvm.org/D143529

16 months ago[M68k] Factoring out memory operand printer into a separate file
Min-Yih Hsu [Tue, 7 Feb 2023 19:21:12 +0000 (11:21 -0800)]
[M68k] Factoring out memory operand printer into a separate file

In order to support inline asm with memory constraints,
AsmPrinter::PrintAsmMemOperand needs to be implemented, which has lots
of overlaps with MCInstPrinter especially on the format of complex
addressing modes. This patch factors out the common printing logics from
MCInstPrinter into a separate class inherited by both AsmPrinter and
MCInstPrinter, in which the derived classes only need to provide
primitives like printOperand and printDisp.

This change is basically NFC. See D143529 for changes on AsmPrinter.

Differential Revision: https://reviews.llvm.org/D143528

16 months ago[SLP][NFC]Update/simplify test to avoid dead code elimination.
Alexey Bataev [Wed, 8 Mar 2023 21:46:18 +0000 (13:46 -0800)]
[SLP][NFC]Update/simplify test to avoid dead code elimination.

16 months ago[flang] is_iostat_end and is_iostat_eor intrinsics
V Donaldson [Wed, 8 Mar 2023 17:38:27 +0000 (09:38 -0800)]
[flang] is_iostat_end and is_iostat_eor intrinsics

16 months ago[scudo] Adjust page map buffer size
Chia-hung Duan [Wed, 8 Mar 2023 18:26:10 +0000 (18:26 +0000)]
[scudo] Adjust page map buffer size

Given the memory group, we are unlikely to need a huge page map to
record entire region. This CL reduces the size of default page map
buffer from 2048 to 512 and increase the number of static buffers to 2.

Reviewed By: cferris

Differential Revision: https://reviews.llvm.org/D144754

16 months ago[OPENMP]Fix PR59947: "Partially-triangular" loop collapse crashes.
Alexey Bataev [Tue, 7 Mar 2023 16:12:54 +0000 (08:12 -0800)]
[OPENMP]Fix PR59947: "Partially-triangular" loop collapse crashes.

The indeces of the dependent loops are properly ordered, just start from
1, so need just subtract 1 to get correct loop index.

Differential Revision: https://reviews.llvm.org/D145514

16 months ago[libc++] Granularize <type_traits> includes
Nikolas Klauser [Sun, 12 Feb 2023 11:32:36 +0000 (12:32 +0100)]
[libc++] Granularize <type_traits> includes

Reviewed By: ldionne, #libc, #libc_abi

Spies: #libc_vendors, smeenai, libcxx-commits

Differential Revision: https://reviews.llvm.org/D145320

16 months ago[flang] Adapt PointerIsAssociatedWith for empty derived-type
Valentin Clement [Wed, 8 Mar 2023 21:03:35 +0000 (22:03 +0100)]
[flang] Adapt PointerIsAssociatedWith for empty derived-type

When a derived-type as no component, its elem_len will be set to
zero when emboxed. Update the function to let empty derived-type
pointer/target succeed the test.

Example extracted from gfortran test pointer_init_8

```
module m
  type :: c
  end type c
  type, extends(c) :: d
  end type d
  type(c), target :: x
end module

use m
  class(c), pointer :: px => x

  if (.not. associated(px, x))   STOP 1
end
```

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D145604

16 months ago[libc++][format] Improves Unicode decoders.
Mark de Wever [Thu, 9 Feb 2023 20:38:42 +0000 (21:38 +0100)]
[libc++][format] Improves Unicode decoders.

During the implementation of P2286 a second Unicode decoder was added.
The original decoder was only used for the width estimation. Changing
an ill-formed Unicode sequence to the replacement character, works
properly for this use case. For P2286 an ill-formed Unicode sequence
needs to be formatted as a sequence of code units. The exact wording in
the Standard as a bit unclear and there was odd example in the WP. This
made it hard to use the same decoder. SG16 determined the odd example in
the WP was a bug and this has been fixed in the WP.

This made it possible to combine the two decoders. The P2286 decoder
kept track of the size of the ill-formed sequence. However this was not
needed since the output algorithm needs to keep track of size of a
well-formed and an ill-formed sequence. So this feature has been
removed.

The error status remains since it's needed for P2286, the grapheme
clustering can ignore this unneeded value. (In general, grapheme
clustering is only has specified behaviour for Unicode. When the string
is in a non-Unicode encoding there are no requirements. Ill-formed
Unicode is a non-Unicode encoding. Still libc++ does a best effort
estimation.)

There UTF-8 decoder accepted several ill-formed sequences:
- Values in the surrogate range U+D800..U+DFFF.
- Values encoded in more code units than required, for example 0+0020
  in theory can be encoded using 1, 2, 3, or 4 were accepted. This is
  not allowed by the Unicode Standard.
- Values larger than U+10FFFF were not always rejected.

Reviewed By: #libc, ldionne, tahonermann, Mordante

Differential Revision: https://reviews.llvm.org/D144346

16 months ago[X86] Regenerate memset-vs-memset-inline.ll
Simon Pilgrim [Wed, 8 Mar 2023 21:00:29 +0000 (21:00 +0000)]
[X86] Regenerate memset-vs-memset-inline.ll

Check we write to the entire memory span of the inlined memset

Simplifies future update_llc_test_checks regenerations

16 months ago[docs] Update README and GettingStarted
Arthur Eubanks [Mon, 6 Mar 2023 19:45:23 +0000 (11:45 -0800)]
[docs] Update README and GettingStarted

Funnel fetching and building LLVM instructions into GettingStarted.

Modernize the build steps a little.

Remove comments saying CMAKE_BUILD_TYPE defaults to Debug as that's not true anymore (must explicitly pass it).

Reviewed By: MaskRay, hans

Differential Revision: https://reviews.llvm.org/D145413

16 months ago[RISCV] Remove support for integers in RISCVAsmParser::parseFPImm.
Craig Topper [Wed, 8 Mar 2023 20:39:30 +0000 (12:39 -0800)]
[RISCV] Remove support for integers in RISCVAsmParser::parseFPImm.

Integers are ambiguous as to whether it's an index or an FP value
without a decimal.

Looks like maybe AArch64 equivalent treates integers in hex as
index and any other integer as a FP value without a decimal. We
need to work with the RVI community to decide what we should do.

16 months ago[flang] Remove circular dependency between libFIRSupport and libFIRDialect
Renaud-K [Wed, 8 Mar 2023 20:21:21 +0000 (12:21 -0800)]
[flang] Remove circular dependency between libFIRSupport and libFIRDialect
Differential revision: https://reviews.llvm.org/D145602

16 months ago[libc] Add fenv_t and signal macros in riscv
Mikhail R. Gadelha [Wed, 8 Mar 2023 20:31:18 +0000 (17:31 -0300)]
[libc] Add fenv_t and signal macros in riscv

This patch now enables full build.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D145594

16 months ago[mlir][scf] Fix bug in software pipeliner and simplify the logic
Thomas Raoux [Wed, 8 Mar 2023 17:46:26 +0000 (17:46 +0000)]
[mlir][scf] Fix bug in software pipeliner and simplify the logic

Fix bug when pipelining while interleaving stages. Re-do the logic to
only consider cloned operands when updating the use-def chain.

Differential Revision: https://reviews.llvm.org/D145598

16 months ago[libc] Remove log10 from the list of riscv64 entrypoints.
Siva Chandra [Wed, 8 Mar 2023 20:04:08 +0000 (20:04 +0000)]
[libc] Remove log10 from the list of riscv64 entrypoints.

Its test is currently failing of real riscv64 hardware.

16 months ago[SROA] Create additional vector type candidates based on store and load slices
Han Zhu [Tue, 24 Jan 2023 07:32:42 +0000 (23:32 -0800)]
[SROA] Create additional vector type candidates based on store and load slices

Second try at A-Wadhwani's https://reviews.llvm.org/D132096, which was reverted.
The original patch had three issues:
* https://reviews.llvm.org/D134032, which bjope kindly fixed. That patch is merged into this one.
* [GHI #57796](https://github.com/llvm/llvm-project/issues/57796). Fixed and added a test.
* [GHI #57821](https://github.com/llvm/llvm-project/issues/57821). I believe this is an undefined behavior which is not the fault of the original patch. Please see the issue for more details.

Original diff summary:

This patch adds additional vector types to be considered when doing promotion in
SROA, based on the types of the store and load slices. This provides more
promotion opportunities, by potentially using an optimal "intermediate" vector
type.

For example, the following code would currently not be promoted to a vector,
since `__m128i` is a `<2 x i64>` vector.
```

__m128i packfoo0(int a, int b, int c, int d) {
  int r[4] = {a, b, c, d};
  __m128i rm;
  std::memcpy(&rm, r, sizeof(rm));
  return rm;
}
```
```
packfoo0(int, int, int, int):
  mov     dword ptr [rsp - 24], edi
  mov     dword ptr [rsp - 20], esi
  mov     dword ptr [rsp - 16], edx
  mov     dword ptr [rsp - 12], ecx
  movaps  xmm0, xmmword ptr [rsp - 24]
  ret
```
By also considering the types of the elements, we could find that the `<4 x i32>` type would be valid for promotion, hence removing the memory accesses for this function. In other words, we can explore other new vector types, with the same size but different element types based on the load and store instructions from the Slices, which can
provide us more promotion opportunities.

Additionally, the step for removing duplicate elements from the `CandidateTys` vector was not using an equality comparator, which has been fixed.

Differential Revision: https://reviews.llvm.org/D143225

16 months ago[C2x] Add test coverage for WG14 N2607
Aaron Ballman [Wed, 8 Mar 2023 19:57:32 +0000 (14:57 -0500)]
[C2x] Add test coverage for WG14 N2607

This adds test coverage for N2607, which makes arrays and their
elements identically qualified. Clang already implements much of the
functionality from this paper, but is still missing some support.

It also adds some details to the C status page so users have this
information as well.

16 months ago[mlir][sparse] fix a bug in unpack op that used wrong compare predicate.
Peiming Liu [Wed, 8 Mar 2023 19:49:28 +0000 (19:49 +0000)]
[mlir][sparse] fix a bug in unpack op that used wrong compare predicate.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D145603

16 months ago[X86] AMD Genoa (znver4) Scheduler model update
Ganesh Gopalasubramanian [Tue, 14 Feb 2023 14:24:39 +0000 (19:54 +0530)]
[X86] AMD Genoa (znver4) Scheduler model update

16 months ago[libc] Add support for sqrt in riscv
Mikhail R. Gadelha [Wed, 8 Mar 2023 19:16:40 +0000 (16:16 -0300)]
[libc] Add support for sqrt in riscv

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D145593

16 months ago[lldb] Let 'v' command directly access ivars of _any_ self/this
Dave Lee [Fri, 3 Mar 2023 19:15:55 +0000 (11:15 -0800)]
[lldb] Let 'v' command directly access ivars of _any_ self/this

The `v` (`frame variable`) command can directly access ivars/fields of `this` or `self`.
Such as `v field`, instead of `v this->field`. This change relaxes the criteria for
finding `this`/`self` variables.

There are cases where a `this`/`self` variable does exist, but up to now the `v` command
has not made use of it. The user would have to explicitly run `v this->field` or
`self->_ivar` to access ivars. This change allows such cases to also work (without
explicitly dereferencing `this`/`self`).

A very common example in Objective-C (and Swift) is weakly capturing `self`:

```
__weak Type *weakSelf = self;
void (^block)(void) = ^{
   Type *self = weakSelf; // Re-establish strong reference.
   // `v _ivar` should work just as well as `v self->_ivar`.
};
```

In this case, `self` exists but `v` would not have used it. With this change, the fact
that a variable named `self` exists is enough for it to be used.

Differential Revision: https://reviews.llvm.org/D145276

16 months ago[libc] Add support for fma in riscv
Mikhail R. Gadelha [Wed, 8 Mar 2023 19:14:40 +0000 (16:14 -0300)]
[libc] Add support for fma in riscv

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D145592

16 months agoMake it possible to create DenseElementsAttrs with arbitrary shaped types in Python...
Adam Paszke [Wed, 8 Mar 2023 18:41:34 +0000 (10:41 -0800)]
Make it possible to create DenseElementsAttrs with arbitrary shaped types in Python bindings

Right now the bindings assume that all DenseElementsAttrs correspond to tensor values,
making it impossible to create vector-typed constants. I didn't want to change the API
significantly, so I opted for reusing the current signature of `.get`. Its `type` argument
now accepts both element types (in which case `shape` and `signless` can be specified too),
or a shaped type, which specifies the full type of the created attr (`shape` cannot be specified
in that case).

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D145053

16 months ago[VPlan] Add predicate to VPReplicateRecipe, expand region later.
Florian Hahn [Wed, 8 Mar 2023 19:11:27 +0000 (20:11 +0100)]
[VPlan] Add predicate to VPReplicateRecipe, expand region later.

This patch adds the predicate as additional operand to VPReplicateRecipe
during initial construction. The predicated recipes are later moved into
replicate regions. This simplifies constructions and some VPlan
transformations, like fixed-order recurrence handling.

It also improves codegen in some cases (e.g. for in-loop reductions),
because the recipes remain in the same block.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D143865

16 months ago[lldb] Change default value of dwim-print-verbosity setting
Dave Lee [Tue, 7 Mar 2023 23:58:19 +0000 (15:58 -0800)]
[lldb] Change default value of dwim-print-verbosity setting

Reduce the default value of `dwim-print-verbosity` to `eDWIMPrintVerbosityNone`.

Users who wish to see the rewritten expression can set this setting manually. Not unlike
`interpreter.expand-regex-aliases`.

Differential Revision: https://reviews.llvm.org/D145529

16 months ago[AIX] Fix libc++ Symbol Visibility on AIX
Michael Francis [Sat, 24 Dec 2022 20:45:26 +0000 (20:45 +0000)]
[AIX] Fix libc++ Symbol Visibility on AIX

The AIX linker does not support linking against libc++ if it exports symbols are redefined within compiled code.

Differential Revision: https://reviews.llvm.org/D140675

16 months ago[Polly] Remove -polly-vectorizer=polly.
Michael Kruse [Wed, 8 Mar 2023 17:39:17 +0000 (11:39 -0600)]
[Polly] Remove -polly-vectorizer=polly.

Polly's internal vectorizer is not well maintained and is known to not work in some cases such as region ScopStmts. Unlike LLVM's LoopVectorize pass it also does not have a target-dependent cost heuristics, and we recommend using LoopVectorize instead of -polly-vectorizer=polly.

In the future we hope that Polly can collaborate better with LoopVectorize, like Polly marking a loop is safe to vectorize with a specific simd width, instead of replicating its functionality.

Reviewed By: grosser

Differential Revision: https://reviews.llvm.org/D142640

16 months ago[CodeGen] Prevent nullptr deref in genAlternativeCodeSequence
Felipe de Azevedo Piovezan [Wed, 8 Mar 2023 18:04:29 +0000 (13:04 -0500)]
[CodeGen] Prevent nullptr deref in genAlternativeCodeSequence

A pointer dereference was added (D141302) above an assert that checks
whether the pointer is null. This commit moves the assert above the
dereference and transforms it into an llvm_unreachable to better express
the intent that certain switch cases should never be reached.

Differential Revision: https://reviews.llvm.org/D145599

16 months ago[RISCV] Make getFPImm return a float instead of a uint32_t. NFC
Craig Topper [Wed, 8 Mar 2023 18:14:34 +0000 (10:14 -0800)]
[RISCV] Make getFPImm return a float instead of a uint32_t. NFC

The one caller bitcasted the uint32_t to float anyway.

16 months ago[libc++] Enable -Wunused-template
Nikolas Klauser [Thu, 23 Feb 2023 20:17:11 +0000 (21:17 +0100)]
[libc++] Enable -Wunused-template

Clang wants to enable this flag by default, but libc++ isn't working with it yet.

Reviewed By: Mordante, #libc, #libc_abi, EricWF

Spies: libcxx-commits, arichardson

Differential Revision: https://reviews.llvm.org/D144667

16 months agoRevert D118493 "Set rpath on openmp executables"
Fangrui Song [Wed, 8 Mar 2023 18:18:40 +0000 (10:18 -0800)]
Revert D118493 "Set rpath on openmp executables"

This reverts commit 9b9d08111b618d74574ba03e5cc3d752ecc56f55.
(Accepted by Jon https://reviews.llvm.org/D118493#4178250)

libc++, libc++abi, libunwind, and compiler-rt don't add the extra DT_RUNPATH,
it's strange for OpenMP to diverge.
Some build systems want to handle DT_RUNPATH themselves (e.g.
CMAKE_INSTALL_RPATH). Some distributions (e.g. Fedora) have policies against
DT_RUNPATH and the default DT_RUNPATH for OpenMP is causing trouble.

For users who don't want to specify rpath by themselves,
https://clang.llvm.org/docs/UsersManual.html#configuration-files
can be used to specify the default rpath, e.g.
specify -frtlib-add-rpath or -Wl,-rpath in bin/clang.cfg

16 months ago[DAGCombiner] Avoid converting (x or/xor const) + y to (x + y) + const if benefit...
Juneyoung Lee [Wed, 15 Feb 2023 18:05:20 +0000 (18:05 +0000)]
[DAGCombiner] Avoid converting (x or/xor const) + y to (x + y) + const if benefit is unclear

This patch resolves suboptimal code generation reported by https://github.com/llvm/llvm-project/issues/60571 .

DAGCombiner currently converts `(x or/xor const) + y` to `(x + y) + const` if this is valid.
However, if `.. + const` is broken down into a sequences of adds with carries, the benefit is not clear, introducing two more add(-with-carry) ops (total 6) in the case of the reported issue whereas the optimal sequence must only have 4 add(-with-carry)s.

This patch resolves this issue by allowing this conversion only when (1) `.. + const` is legal or promotable, or (2) `const` is a sign bit because it does not introduce more adds.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D144116

16 months ago[memprof] Simplify initialized flags.
Snehasish Kumar [Tue, 7 Mar 2023 23:38:51 +0000 (23:38 +0000)]
[memprof] Simplify initialized flags.

As discussed in D145428, the memprof_init_is_running check can be moved
to the end of the initialization routine to avoid intercepting
allocations during initialization. Also, the memprof_init_done flag can
be removed and replaced with memprof_inited. Finally, memprof_inited can
also be moved to the end of the method.

Tested on the existing check-memprof tests; memprof profile collection
succeeded on a large internal workload.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D145528

16 months ago[libc] Support more functions in riscv
Mikhail R. Gadelha [Wed, 8 Mar 2023 17:57:02 +0000 (14:57 -0300)]
[libc] Support more functions in riscv

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D145444