Go to file
James Molloy ae5ff990ae [Thumb] Reapply r272251 with a fix for PR28348 (mk 2)
The important thing I was missing was ensuring newly added constants were kept in topological order. Repositioning the node is correct if the constant is newly added (so it has no topological ordering) but wrong if it already existed - positioning it next in the worklist would break the topological ordering.

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: 274543
2016-07-05 12:37:13 +00:00
clang [X86][AVX512F] add float/double abs intrinsics 2016-07-05 12:24:14 +00:00
clang-tools-extra [clang-include-fixer] fix PEP8 warnings 2016-07-04 16:47:17 +00:00
compiler-rt [esan|cfrag] Add struct array access report 2016-07-02 03:25:55 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc configure: Remove device specific defines 2016-06-17 20:30:50 +00:00
libcxx Add unordered_map::insert benchmark test and rename file 2016-07-02 05:30:54 +00:00
libcxxabi Fix [libcxxabi] Fix warning about uninitialized const member. 2016-06-15 19:59:16 +00:00
libunwind [libunwind] Improve unwinder stack usage - III 2016-06-14 15:51:01 +00:00
lld [ELF] Support --entry= option variant. Update tests while I'm there. 2016-07-04 21:50:50 +00:00
lldb Split TestTemplateIntegerArgs test into two 2016-07-04 13:49:46 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm [Thumb] Reapply r272251 with a fix for PR28348 (mk 2) 2016-07-05 12:37:13 +00:00
openmp __kmp_partition_places: Update assertion for new parameter update_master_only 2016-07-04 05:58:10 +00:00
parallel-libs Change mailing list names in README 2016-06-24 22:50:09 +00:00
polly Correct two typos 2016-07-02 09:19:54 +00:00