llvm-project/llvm/lib
Jessica Paquette 02187ed45a [GlobalISel] Combine G_SELECTs of the form (cond ? x : x) into x
When we find something like this:

```
%a:_(s32) = G_SOMETHING ...
...
%select:_(s32) = G_SELECT %cond(s1), %a, %a
```

We can remove the select and just replace it entirely with `%a` because it's
always going to result in `%a`.

Same if we have

```
%select:_(s32) = G_SELECT %cond(s1), %a, %b
```

where we can deduce that `%a == %b`.

This implements the following cases:

- `%select:_(s32) = G_SELECT %cond(s1), %a, %a` -> `%a`

- `%select:_(s32) = G_SELECT %cond(s1), %a, %some_copy_from_a` -> `%a`

- `%select:_(s32) = G_SELECT %cond(s1), %a, %b` -> `%a` when `%a` and `%b`
   are defined by identical instructions

This gives a few minor code size improvements on CTMark at -O3 for AArch64.

Differential Revision: https://reviews.llvm.org/D76523
2020-03-23 16:46:03 -07:00
..
Analysis Add Triple::isAMDGPU 2020-03-22 14:20:28 -04:00
AsmParser Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
BinaryFormat [DebugInfo]: Added DWARFv5 macro header flags and corresponding helper 2020-03-07 17:53:01 +05:30
Bitcode Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
Bitstream Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
CodeGen [GlobalISel] Combine G_SELECTs of the form (cond ? x : x) into x 2020-03-23 16:46:03 -07:00
DWARFLinker Revert "Allow remapping the sysroot with -fdebug-prefix-map." 2020-03-20 16:27:23 -07:00
DebugInfo Roll an expression into an assert to remove the need for a (void) cast. 2020-03-22 18:18:27 -07:00
Demangle Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ExecutionEngine [ORC] Move ostream operators for debugging output out of Core.h. 2020-03-21 18:27:28 -07:00
Frontend [OpenMP][NFC] Reduce instantiation time with different data structure 2020-03-23 14:23:46 -05:00
FuzzMutate Remove CompositeType class. 2020-03-18 13:53:17 -07:00
Fuzzer
IR Verifier: Check bswap is supported size 2020-03-22 12:15:25 -04:00
IRReader
LTO [LTO] onfig::addSaveTemps: clear ResolutionFile upon an error 2020-03-02 17:49:04 -08:00
LineEditor Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Linker IR Linking: Support merging Warning+Max module metadata flags 2020-02-07 16:29:58 -08:00
MC Revert rGd5d8569df14e95e2c53d167bd1b37995bcbec565 "Fix static analysis warnings about classes with virtual methods not having virtual destructors" 2020-03-21 11:39:34 +00:00
MCA Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Object Drop a StringMap.h include, NFC 2020-03-11 15:45:34 -07:00
ObjectYAML [yaml2obj] - Add `ELFYAML::YAMLIntUInt` to fix how we parse a relocation `Addend` key. 2020-03-17 14:22:19 +03:00
Option Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Passes [memtag] Plug in stack safety analysis. 2020-03-16 16:35:25 -07:00
ProfileData [Coverage] Collect all function records in an object (D69471 followup) 2020-03-02 12:01:09 -08:00
Remarks Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Support Improve module.pcm lock file performance on machines with high core counts 2020-03-23 14:59:39 -07:00
TableGen Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
Target [PowerPC] Improve handling of some BUILD_VECTOR nodes 2020-03-23 17:34:29 -05:00
Testing
TextAPI [llvm][MachO] fix adding weak def syms 2020-03-02 17:00:24 -08:00
ToolDrivers [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
Transforms GVNSink: Allow handling addrspacecast 2020-03-23 16:50:58 -04:00
WindowsManifest Try to fix WindowsManifest CMake logic on Windows 2020-02-28 17:24:03 -08:00
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt
LLVMBuild.txt