llvm-6502/lib
James Molloy bc71c2fd8e Reapply r237453 with a fix for the test timeouts.
The test timeouts were due to instcombine fighting itself. Regression test added.
Original log message:

Canonicalize min/max expressions correctly.

This patch introduces a canonical form for min/max idioms where one operand
is extended or truncated. This often happens when the other operand is a
constant. For example:

  %1 = icmp slt i32 %a, i32 0
    %2 = sext i32 %a to i64
      %3 = select i1 %1, i64 %2, i64 0

Would now be canonicalized into:

  %1 = icmp slt i32 %a, i32 0
    %2 = select i1 %1, i32 %a, i32 0
      %3 = sext i32 %2 to i64

This builds upon a patch posted by David Majenemer
(https://www.marc.info/?l=llvm-commits&m=143008038714141&w=2). That pass
passively stopped instcombine from ruining canonical patterns. This
patch additionally actively makes instcombine canonicalize too.

Canonicalization of expressions involving a change in type from int->fp
or fp->int are not yet implemented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237520 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 13:10:45 +00:00
..
Analysis Allow min/max detection to see through casts. 2015-05-15 16:04:50 +00:00
AsmParser [opaque pointer type] Use the value type of the GlobalVariable rather than accessing it through the pointee's type 2015-05-13 22:55:01 +00:00
Bitcode [BitcodeReader] Don't allow INSERTVAL/EXTRACTVAL with 0 indices 2015-05-16 00:33:12 +00:00
CodeGen Correct indentation. NFC 2015-05-16 05:42:08 +00:00
DebugInfo MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
ExecutionEngine [RuntimeDyld] Use isInt to assert that a relocation didn't overflow 2015-05-15 20:32:25 +00:00
Fuzzer [lib/Fuzzer] Add SHA1 implementation from public domain. 2015-05-14 22:41:49 +00:00
IR While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
IRReader
LineEditor
Linker While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
LTO LTO: Add API to choose whether to embed uselists 2015-04-27 23:38:54 +00:00
MC MC: Use MCSymbol in RelAndSymbol, NFC 2015-05-16 01:14:19 +00:00
Object Remove MCAssembler.h include from MCStreamer.h and fix users of MCStreamer.h 2015-05-15 22:19:42 +00:00
Option Option parsing: properly handle flag aliases for joined options (PR23394) 2015-05-04 18:00:13 +00:00
Passes
ProfileData InstrProf: Treat functions with a coverage map but no profile as unreached 2015-05-13 22:03:04 +00:00
Support YAML: Add support for literal block scalar I/O. 2015-05-14 23:08:22 +00:00
TableGen [TableGen] Change 'car' to 'head' and 'cdr' to 'tail' in assert comments. These were the old names for these operations long ago. NFC 2015-05-16 05:42:13 +00:00
Target [x86] Distinguish the 'o', 'v', 'X', and 'i' inline assembly memory constraints. 2015-05-16 12:09:54 +00:00
Transforms Reapply r237453 with a fix for the test timeouts. 2015-05-16 13:10:45 +00:00
CMakeLists.txt
LLVMBuild.txt Reflow long lines of some LLVMBuild files 2015-05-14 15:38:27 +00:00
Makefile