1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib
Craig Topper 100b9ea58d [X86] Call removeDeadNode when we're done doing custom isel for mul, div and test
Summary:
Once we've done our custom isel for these nodes, I think we should be calling removeDeadNode to prune them out of the DAG. Table driven isel ultimately either calls morphNodeTo which modifies a node and doesn't leave dead nodes. Or it emits new nodes and then calls removeDeadNode as part of Opc_CompleteMatch.

If you run a simple multiply test case like this through llc with -debug you'll see a umul_lohi node get printed as part of the dump for Instruction Selection ends.

```
define i64 @foo(i64 %a, i64 %b) local_unnamed_addr #0 {
entry:
  %conv = zext i64 %a to i128
  %conv1 = zext i64 %b to i128
  %mul = mul nuw nsw i128 %conv1, %conv
  %shr = lshr i128 %mul, 64
  %conv2 = trunc i128 %shr to i64
  ret i64 %conv2
}
```

Reviewers: RKSimon, spatel, zvi, guyblank, niravd

Reviewed By: niravd

Subscribers: llvm-commits

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

llvm-svn: 312857
2017-09-09 05:57:20 +00:00
..
Analysis [TargetTransformInfo] Add a new public interface getInstructionCost 2017-09-08 22:29:17 +00:00
AsmParser Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
BinaryFormat [BinaryFormat] Fix out of bounds read. 2017-08-31 12:50:42 +00:00
Bitcode [Bitcode] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-07 23:28:24 +00:00
CodeGen RegAllocFast: Fix warning; NFC 2017-09-09 01:16:59 +00:00
DebugInfo [dwarfdump] Verify line table prologue 2017-09-08 09:48:51 +00:00
Demangle
ExecutionEngine [ORC] Add a pair of ORC layers that forward object-layer operations via RPC. 2017-09-05 03:34:09 +00:00
Fuzzer
FuzzMutate Move some CLI utils out of llvm-isel-fuzzer and into the library 2017-09-02 23:43:04 +00:00
IR Revert r312318, r312325, r312424, r312489 2017-09-07 23:20:35 +00:00
IRReader
LineEditor
Linker
LTO LTO: Remove unnecessary Windows support code. 2017-09-07 00:55:00 +00:00
MC [WebAssembly] Update relocation names to match spec 2017-09-01 17:32:01 +00:00
Object Object: Downgrade invalid weak externals from an assert fail to an llvm::Error when creating an irsymtab. 2017-09-07 01:33:52 +00:00
ObjectYAML [yaml2obj][ELF] Add support for symbol indexes greater than SHN_LORESERVE 2017-09-07 20:44:16 +00:00
Option Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags" 2017-08-29 00:09:31 +00:00
Passes
ProfileData [Coverage] Build sorted and unique segments 2017-09-08 18:44:50 +00:00
Support Don't call exit from cl::PrintHelpMessage. 2017-09-07 23:30:48 +00:00
TableGen Untabify. 2017-08-28 06:47:47 +00:00
Target [X86] Call removeDeadNode when we're done doing custom isel for mul, div and test 2017-09-09 05:57:20 +00:00
Testing
ToolDrivers [llvm-dlltool] Mention arm64 in the lists of architecture alternatives 2017-09-08 06:49:46 +00:00
Transforms [sanitizer-coverage] call appendToUsed once per module, not once per function (which is too slow) 2017-09-09 05:30:13 +00:00
WindowsManifest Fix crbug 759265 by suppressing llvm mt warnings. 2017-09-06 01:50:36 +00:00
XRay
CMakeLists.txt
LLVMBuild.txt