1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

1659 Commits

Author SHA1 Message Date
Arthur Eubanks
d924016b11 [gn build] Add missing comma 2020-10-23 12:01:23 -07:00
Amara Emerson
a5ff88d2db [AArch64][GlobalISel] Introduce a new post-isel optimization pass.
There are two optimizations here:

1. Consider the following code:
 FCMPSrr %0, %1, implicit-def $nzcv
 %sel1:gpr32 = CSELWr %_, %_, 12, implicit $nzcv
 %sub:gpr32 = SUBSWrr %_, %_, implicit-def $nzcv
 FCMPSrr %0, %1, implicit-def $nzcv
 %sel2:gpr32 = CSELWr %_, %_, 12, implicit $nzcv
This kind of code where we have 2 FCMPs each feeding a CSEL can happen
when we have a single IR fcmp being used by two selects. During selection,
to ensure that there can be no clobbering of nzcv between the fcmp and the
csel, we have to generate an fcmp immediately before each csel is
selected.

However, often we can essentially CSE these together later in MachineCSE.
This doesn't work though if there are unrelated flag-setting instructions
in between the two FCMPs. In this case, the SUBS defines NZCV
but it doesn't have any users, being overwritten by the second FCMP.

Our solution here is to try to convert flag setting operations between
a interval of identical FCMPs, so that CSE will be able to eliminate one.

2. SelectionDAG imported patterns for arithmetic ops currently select the
flag-setting ops for CSE reasons, and add the implicit-def $nzcv operand
to those instructions. However if those impdef operands are not marked as
dead, the peephole optimizations are not able to optimize them into non-flag
setting variants. The optimization here is to find these dead imp-defs and
mark them as such.

This pass is only enabled when optimizations are enabled.

Differential Revision: https://reviews.llvm.org/D89415
2020-10-23 10:18:36 -07:00
LLVM GN Syncbot
df8c67668f [gn build] Port dbbc4f4e226 2020-10-23 17:06:41 +00:00
LLVM GN Syncbot
5b19aaf8b1 [gn build] Port 00255f41929 2020-10-23 16:19:55 +00:00
Nico Weber
45a7f324f8 [gn build] port 48e4b0f (__config_site revert)
This reverts commit b3ca53e14274642274be8fe7db8b43dc3c146366.
This reverts commit 8b7dac81d378c339d3e55f6f51cd0c42803903ad.
This reverts commit 37c030f81a9fdd7a7e1b6fa5407b277c1ab1afa1.
2020-10-23 09:45:34 -04:00
Nico Weber
ae1574313b [gn build] (semi-manually) port 147b9497e79 2020-10-22 18:19:59 -04:00
Arthur Eubanks
890b22aff8 [gn build] Add missing clangd dependencies
Fixes
$ ninja obj/build/rel/gen/clang-tools-extra/clangd/CompletionModel.CompletionModel.obj

Some tablegen include files from clang/include/clang/AST and
clang/include/clang/Sema need to be generated before CompletionModel is
compiled.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D89657
2020-10-22 09:04:30 -07:00
LLVM GN Syncbot
88e6dc86b8 [gn build] Port be39a6fe6fc 2020-10-22 09:39:53 +00:00
Nico Weber
dbdd52cab6 [gn build] try to fix clang build after 37c030f81a9fdd
37c030f81a9fdd made it so that depending on //libcxx/include
automatically added the copied header dir to the include search path.
For some reason, clang can't build against the copied libcxx headers
(it complains about ldiv_t not being a type). I don't have a mac
to debug right now, but for the clang target this change was
unintentional anyways -- only depend on the copies target, instead
of on the target that also adjusts the include path.
2020-10-21 14:11:18 -04:00
Nico Weber
31900dae4d [gn build] try to fix up deps of __config_site after 37c030f81a 2020-10-21 12:57:50 -04:00
Nico Weber
f565b5becd [gn build] (manually) port 5d796645d6c8cade (libcxx __config change) 2020-10-21 12:54:30 -04:00
Nico Weber
d803683939 [gn build] (manually) port 54fa9ecd3088 2020-10-21 12:54:30 -04:00
LLVM GN Syncbot
da51f34f77 [gn build] Port 848a68a032d 2020-10-20 17:56:26 +00:00
Nico Weber
bb3716f11b [gn build] assert clang-format does not depend on AST, Frontend, Sema at gn time
To catch things like https://reviews.llvm.org/D69854 and
https://reviews.llvm.org/D89708 earlier next time they happen.
2020-10-20 10:23:42 -04:00
Nico Weber
edb91e97ed [gn build] belatedly port 3ddac7e56363 2020-10-20 10:20:11 -04:00
Nico Weber
1f88b0c5f5 [gn build] port a2214757e2ca more 2020-10-20 10:20:11 -04:00
LLVM GN Syncbot
806ad918a8 [gn build] Port c0cdd22c72f 2020-10-20 13:20:27 +00:00
LLVM GN Syncbot
ba971880b9 [gn build] Port a2214757e2c 2020-10-20 13:20:26 +00:00
Nico Weber
147c31910c Revert "Revert "[gn build] (manually) port d09b08919ca""
This reverts commit 6ca3dd97352013375f907d92a7e1aed7ab80fbc3.
d09b08919ca relanded in 53065c543fe3f1.
2020-10-20 09:09:30 -04:00
Nico Weber
659577b7a3 Revert "[gn build] (manually) port d09b08919ca"
This reverts commit 4d2d287a030fe81a5bf9d982ed8ea26fe3bcee6b.
d09b08919ca got reverted in 7ecd60bb702.
2020-10-19 20:01:06 -04:00
LLVM GN Syncbot
c330f53100 [gn build] Port 6154c4115cd 2020-10-19 04:23:08 +00:00
LLVM GN Syncbot
3640a6462f [gn build] Port 0aec49c8531 2020-10-19 04:23:07 +00:00
Nico Weber
f99c52a3a0 [gn build] (manually) port d09b08919ca 2020-10-18 12:17:55 -04:00
LLVM GN Syncbot
92111fd84e [gn build] Port 3d4bba302d2 2020-10-16 18:13:18 +00:00
Nico Weber
fac13d2341 [gn build] (manually) port 3d4bba302d246 2020-10-16 14:12:38 -04:00
Nico Weber
6865cba465 [gn bulid] Remove phantom WebAssembly tablegen() calls
Apparenlty I added these in https://reviews.llvm.org/rL350628 but
I'm not sure why. They never existed in the CMake build, and now
they're causing trouble.
2020-10-15 16:14:11 -04:00
LLVM GN Syncbot
9f80ca3aba [gn build] Port f0875971249 2020-10-13 20:50:32 +00:00
LLVM GN Syncbot
3ab165d1a9 [gn build] Port 77bb3ebebbc 2020-10-13 19:14:10 +00:00
LLVM GN Syncbot
7af631872f [gn build] Port 662ed9e67ad 2020-10-13 19:14:09 +00:00
LLVM GN Syncbot
9b4c282db0 [gn build] Port b76dc111dd0 2020-10-13 17:53:40 +00:00
LLVM GN Syncbot
b114391be7 [gn build] Port 44b7cf2983b 2020-10-13 17:53:39 +00:00
LLVM GN Syncbot
9263495686 [gn build] Port 412cdcf2edf 2020-10-13 01:07:55 +00:00
Nico Weber
68c9b7691c [gn build] Add libclang_rt.ios.a, libclang_rt.iossim.a to the build
It's built with just-built clang, like all other compiler-rt parts
in the GN build.

This requires adding some cross build support to the mac toolchain.

Also add explicit mmacosx-version-min and miphoneos-version-min
flags to the build.

ios.a is only built with the arm64 slice, iossim.a only with the
x86_64 slice for now. (The latter should maybe become host_cpu
when Arm Macs become a common iOS development platform.)

With this, it's possible to build chromium/iOS with a GN-built LLVM.

Differential Revision: https://reviews.llvm.org/D89260
2020-10-12 16:21:04 -04:00
LLVM GN Syncbot
d1ef7ad43b [gn build] Port f9317f7bf6b 2020-10-12 13:27:45 +00:00
LLVM GN Syncbot
eaed84a6bd [gn build] Port 0741a2c9cac 2020-10-09 13:54:24 +00:00
Nico Weber
385deec198 [gn build] (manually) port 9b58b0c06e6 better 2020-10-08 10:13:54 -04:00
Nico Weber
aaecbeabb4 [gn build] (manually) port 9b58b0c06e6 2020-10-08 10:08:45 -04:00
LLVM GN Syncbot
c887e89634 [gn build] Port ddf1864ace4 2020-10-07 15:50:43 +00:00
Nico Weber
667a8e234b [gn build] (manually) port ce1365f8f7e 2020-10-07 10:33:51 -04:00
Nico Weber
2e9cf00e3d [gn build] manually port 5e4409f308177 2020-10-06 18:43:49 -04:00
LLVM GN Syncbot
045458557c [gn build] Port aa2b593f149 2020-10-06 14:49:44 +00:00
LLVM GN Syncbot
f024187bee [gn build] Port d6c9dc3c17e 2020-10-06 12:02:07 +00:00
LLVM GN Syncbot
90e91d175f [gn build] Port 6c6cd5f8a97 2020-10-04 19:10:39 +00:00
LLVM GN Syncbot
235ba6748a [gn build] Port ace644030e6 2020-10-02 23:59:59 +00:00
Arthur Eubanks
63659fb23e [gn build] Don't define CINDEX_EXPORTS
This causes
../../clang/include\clang-c/Platform.h(23,11): warning: 'CINDEX_EXPORTS' macro redefined [-Wmacro-redefined]
  #define CINDEX_EXPORTS
2020-10-02 10:39:49 -07:00
LLVM GN Syncbot
6db7f6f068 [gn build] Port 0c1bb4f8851 2020-10-02 14:24:01 +00:00
Arthur Eubanks
f70b28627d [gn build] Support building with ThinLTO
Differential Revision: https://reviews.llvm.org/D88584
2020-10-01 13:48:31 -07:00
LLVM GN Syncbot
fb69abb068 [gn build] Port f6b1323bc68 2020-10-01 14:18:52 +00:00
LLVM GN Syncbot
77de5cb36a [gn build] Port d53b4bee0cc 2020-10-01 12:55:59 +00:00
LLVM GN Syncbot
d8d20d81de [gn build] Port 413577a8790 2020-09-30 10:09:34 +00:00