1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/lib
James Molloy 69108ad2ae [Thumb] Reapply r272251 with a fix for PR28348
We were using DAG->getConstant instead of DAG->getTargetConstant. This meant that we could inadvertently increase the use count of a constant if stars aligned, which it did in this testcase. Increasing the use count of the constant could cause ISel to fall over (because DAGToDAG lowering assumed the constant had only one use!)

Original commit message:
  [Thumb] Select a BIC instead of AND if the immediate can be encoded more optimally negated

  If an immediate is only used in an AND node, it is possible that the immediate can be more optimally materialized when negated. If this is the case, we can negate the immediate and use a BIC instead;

    int i(int a) {
      return a & 0xfffffeec;
    }

  Used to produce:
      ldr r1, [CONSTPOOL]
      ands r0, r1
    CONSTPOOL: 0xfffffeec

  And now produces:
      movs    r1, #255
      adds    r1, #20  ; Less costly immediate generation
      bics    r0, r1

llvm-svn: 274510
2016-07-04 16:35:41 +00:00
..
Analysis Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
AsmParser Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
CodeGen Fixed warning caused by r274402. 2016-07-04 12:10:08 +00:00
DebugInfo [pdb] Check the display name for <unnamed-tag>, not the linkage name 2016-07-01 18:43:29 +00:00
ExecutionEngine Reformat blank lines. 2016-07-04 01:26:33 +00:00
Fuzzer [libFuzzer] Let user specify extra stats file. 2016-06-30 20:43:06 +00:00
IR [X86][AVX512] Autoupgrade the VPERMPD/VPERMQ intrinsics 2016-07-04 14:19:05 +00:00
IRReader
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
LTO [UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael. 2016-06-22 19:50:42 +00:00
MC Add support for allowing us to create uniquely identified "COMDAT" or "ELF 2016-07-01 06:07:38 +00:00
Object function_refify. NFC. 2016-07-01 11:05:15 +00:00
ObjectYAML [YAML] Fix YAML tags appearing before the start of sequence elements 2016-06-28 21:10:26 +00:00
Option
Passes [PM] Port LoopAccessInfo analysis to new PM 2016-07-02 21:18:40 +00:00
ProfileData Revert "[Coverage] Move logic to encode filenames and mappings into llvm (NFC)" 2016-06-29 05:33:26 +00:00
Support Add RenderScript ArchType 2016-07-02 00:23:09 +00:00
TableGen Avoid copies of std::strings and APInt/APFloats where we only read from it 2016-06-08 10:01:20 +00:00
Target [Thumb] Reapply r272251 with a fix for PR28348 2016-07-04 16:35:41 +00:00
Transforms [InstCombine] enable vector select of bools -> logic folds 2016-07-03 14:34:39 +00:00
CMakeLists.txt
LLVMBuild.txt