2187 Commits

Author SHA1 Message Date
LLVM GN Syncbot
ae4c0c7cfc [gn build] Port ccfb0555f76b 2021-10-06 22:24:38 +00:00
LLVM GN Syncbot
9f5c70c7ad [gn build] Port 67231650e6ef 2021-10-06 20:22:05 +00:00
Nico Weber
07e5394c63 [gn build] (manually) port 77d5ccdc6f460
(similar to 64f623d4c37c6)
2021-10-06 15:41:38 -04:00
LLVM GN Syncbot
665662a71e [gn build] Port 10f16bc7b2bf 2021-10-06 17:59:12 +00:00
LLVM GN Syncbot
1e013f112e [gn build] Port a30a36f66aea 2021-10-06 11:59:40 +00:00
LLVM GN Syncbot
a67b1220f5 [gn build] Port fc36fb4d23a5 2021-10-06 08:40:14 +00:00
LLVM GN Syncbot
8b2d6fd6cb [gn build] Port 214054f78a4e 2021-10-05 10:41:33 +00:00
LLVM GN Syncbot
e66121b68e [gn build] Port cfef1803dd83 2021-10-05 04:34:07 +00:00
LLVM GN Syncbot
72abda418e [gn build] Port 811b1736d91b 2021-10-04 15:13:27 +00:00
LLVM GN Syncbot
e420164f40 [gn build] Port 657f02d45804 2021-10-02 00:21:42 +00:00
LLVM GN Syncbot
4cdee8de6b [gn build] Port c8c2b4629f75 2021-10-01 20:14:30 +00:00
LLVM GN Syncbot
06cea95a5a [gn build] Port 33dd98e9e499 2021-10-01 18:18:21 +00:00
LLVM GN Syncbot
9c49587cc1 [gn build] Port 47d6274d4c31 2021-10-01 14:57:31 +00:00
LLVM GN Syncbot
4f0a39b9b4 [gn build] Port fb99424a6f65 2021-10-01 14:29:37 +00:00
LLVM GN Syncbot
fcdefc8575 [gn build] Port 3077bc90de8d 2021-10-01 00:43:50 +00:00
LLVM GN Syncbot
0337e228c1 [gn build] Port 050edef8538e 2021-09-30 19:35:12 +00:00
Nico Weber
e31899c708 Reland "[clang-cl] Accept #pragma warning(disable : N) for some N"
This reverts commit 0cd9d8a48bdddb17de2c6388f9d775353f9acab9 and
adds the changes described in https://reviews.llvm.org/D110668#3034461.
2021-09-30 15:03:23 -04:00
LLVM GN Syncbot
4db00342e5 [gn build] Port 13f3c39f3658 2021-09-30 08:28:24 +00:00
Amy Huang
0cd9d8a48b Revert "[clang-cl] Accept #pragma warning(disable : N) for some N"
because it causes `error: error reading '/wd4091'` errors in
compiler-rt builds.
2021-09-29 18:46:55 -07:00
LLVM GN Syncbot
9ad17fe0de [gn build] Port 969359e3b86b 2021-09-29 20:09:08 +00:00
Nico Weber
b2de52bec1 [clang-cl] Accept #pragma warning(disable : N) for some N
clang-cl maps /wdNNNN to -Wno-flags for a few warnings that map
cleanly from cl.exe concepts to clang concepts.

This patch adds support for the same numbers to
`#pragma warning(disable : NNNN)`. It also lets
`#pragma warning(push)` and `#pragma warning(pop)` have an effect,
since these are used together with `warning(disable)`.

The optional numeric argument to `warning(push)` is ignored,
as are the other non-`disable` `pragma warning()` arguments.
(Supporting `error` would be easy, but we also don't support
`/we`, and those should probably be added together.)

The motivating example is that a bunch of code (including in LLVM)
uses this idiom to locally disable warnings about calls to deprecated
functions in Windows-only code, and 4996 maps nicely to
-Wno-deprecated-declarations:

    #pragma warning(push)
    #pragma warning(disable: 4996)
      f();
    #pragma warning(pop)

Implementation-wise:
- Move `/wd` flag handling from Options.td to actual Driver-level code
- Extract the function mapping cl.exe IDs to warning groups to the
  new file clang/lib/Basic/CLWarnings.cpp
- Create a diag::Group enum so that CLWarnings.cpp can refer to
  existing groups by ID (and give DllexportExplicitInstantiationDecl
  a named group), and add a function to map a diag::Group to the
  spelling of it's associated commandline flag
- Call that new function from PragmaWarningHandler

Differential Revision: https://reviews.llvm.org/D110668
2021-09-29 13:14:23 -04:00
LLVM GN Syncbot
fd9a5b911d [gn build] Port c07f7099690e 2021-09-29 01:03:11 +00:00
Arthur Eubanks
aa53785f23 Reland [clang] Rework dontcall attributes
To avoid using the AST when emitting diagnostics, split the "dontcall"
attribute into "dontcall-warn" and "dontcall-error", and also add the
frontend attribute value as the LLVM attribute value. This gives us all
the information to report diagnostics we need from within the IR (aside
from access to the original source).

One downside is we directly use LLVM's demangler rather than using the
existing Clang diagnostic pretty printing of symbols.

Previous revisions didn't properly declare the new dependencies.

Reviewed By: nickdesaulniers

Differential Revision: https://reviews.llvm.org/D110364
2021-09-28 15:31:30 -07:00
LLVM GN Syncbot
5aa4c74c9a [gn build] Port 864b206796ae 2021-09-28 10:58:48 +00:00
LLVM GN Syncbot
57cd7b018c [gn build] Port 6cfb4d46bae1 2021-09-27 21:56:39 +00:00
LLVM GN Syncbot
e2eb651cfc [gn build] Port 9da2fa277e81 2021-09-27 12:33:13 +00:00
LLVM GN Syncbot
a44b122ade [gn build] Port 6498b0e991ba 2021-09-26 17:25:08 +00:00
LLVM GN Syncbot
70a48697d5 [gn build] Port c0d889995e70 2021-09-24 20:30:26 +00:00
LLVM GN Syncbot
5f98024011 [gn build] Port a9ae2436fc0d 2021-09-24 20:30:25 +00:00
LLVM GN Syncbot
58d9ed2c93 [gn build] Port a2c1cf09dfaa 2021-09-24 03:01:20 +00:00
LLVM GN Syncbot
1aed7fcf09 [gn build] Port a44ab1702539 2021-09-23 19:01:30 +00:00
LLVM GN Syncbot
ac889a5262 [gn build] Port f4abdb0c074b 2021-09-23 13:34:40 +00:00
Nico Weber
64f623d4c3 [gn build] (manually) port ac191bcc99e2f 2021-09-23 09:34:24 -04:00
Nico Weber
cef0280a95 [gn build] (semi-manually) port 702cb7afe9de 2021-09-23 09:26:27 -04:00
LLVM GN Syncbot
f099ac838e [gn build] Port 7a320b279d07 2021-09-22 12:20:22 +00:00
Nico Weber
c828b93fb3 [gn build] (manually) port f8b1cc365786 2021-09-22 08:20:12 -04:00
LLVM GN Syncbot
a3bb4f1455 [gn build] Port a04a6ce7726b 2021-09-21 16:34:07 +00:00
Amara Emerson
4ceea77409 [X86] Rename the X86WinAllocaExpander pass and related symbols to "DynAlloca". NFC.
For x86 Darwin, we have a stack checking feature which re-uses some of this
machinery around stack probing on Windows. Renaming this to be more appropriate
for a generic feature.

Differential Revision: https://reviews.llvm.org/D109993
2021-09-20 16:19:28 -07:00
Arthur Eubanks
b64fdaa86b [gn build] Don't pass -Wl,-z,defs for sanitizer builds
-Wl,-z,defs doesn't work with sanitizers.
See https://clang.llvm.org/docs/AddressSanitizer.html

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D110086
2021-09-20 11:39:39 -07:00
LLVM GN Syncbot
93604c9711 [gn build] Port d85e347a28dc 2021-09-20 16:39:59 +00:00
Amy Huang
6f7483b1ec Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures
Original commit description:

  [LLD] Remove global state in lld/COFF

  This patch removes globals from the lldCOFF library, by moving globals
  into a context class (COFFLinkingContext) and passing it around wherever
  it's needed.

  See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for
  context about removing globals from LLD.

  I also haven't moved the `driver` or `config` variables yet.

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

This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128.

Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc
and e03c7e367adb8f228332e3c2ef8f45484597b719.
2021-09-17 17:18:42 -07:00
Samuel
f18c0739b3 [llvm-reduce] Add reduce operands pass
Add reduction to set operands to default values

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D108903
2021-09-17 12:32:15 -07:00
Nico Weber
df1ab7de38 [gn build] (semi-manually) port 750d5fc65c92 2021-09-17 12:02:09 -04:00
LLVM GN Syncbot
2755670411 [gn build] Port cc8229603b67 2021-09-17 00:45:09 +00:00
LLVM GN Syncbot
a9a6cdc1bd [gn build] Port 78b083dbb725 2021-09-16 23:56:09 +00:00
Amy Huang
a2fd05ada9 Temporarily revert "[LLD] Remove global state in lld/COFF" and "[lld] Add test to
check for timer output"

Seems to be causing a number of asan test failures.

This reverts commit b4fa71eed34d967195514fe9b0a5211fca2bc5bc
and e03c7e367adb8f228332e3c2ef8f45484597b719.
2021-09-16 11:58:11 -07:00
Amy Huang
b4fa71eed3 [LLD] Remove global state in lld/COFF
This patch removes globals from the lldCOFF library, by moving globals
into a context class (COFFLinkingContext) and passing it around wherever
it's needed.

See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for
context about removing globals from LLD.

I also haven't moved the `driver` or `config` variables yet.

Differential Revision: https://reviews.llvm.org/D109634
2021-09-16 11:00:23 -07:00
Arthur Eubanks
c3ddc13d7d [NFC] Split up PassBuilder.cpp
PassBuilder.cpp is the slowest file to compile in LLVM.
When trying to test changes to pipelines, it takes a long time to recompile.

This doesn't actually speedup building PassBuilder.cpp itself since most
of the time is spent in other large/duplicated functions caused by
PassRegistry.def.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D109798
2021-09-15 15:30:39 -07:00
LLVM GN Syncbot
c90cbb2d34 [gn build] Port d249200fa7d5 2021-09-15 22:14:18 +00:00
Nico Weber
afc45ff06f [gn build] (manually) port 2c42a73d6c39 2021-09-15 08:01:02 -04:00