Skip to content
  1. Oct 29, 2013
    • Alexey Samsonov's avatar
      DebugInfo: Introduce the notion of "form classes" · 48cbda58
      Alexey Samsonov authored
      Summary:
      Use DWARF4 table of form classes to fetch attributes from DIE
      in a more consistent way. This shouldn't change the functionality and
      serves as a refactoring for upcoming change: DW_AT_high_pc has different
      semantics depending on its form class.
      
      Reviewers: dblaikie, echristo
      
      Reviewed By: echristo
      
      CC: echristo, llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1961
      
      llvm-svn: 193553
      48cbda58
  2. Oct 28, 2013
    • Akira Hatanaka's avatar
      [mips] Simplify LowerFormalArguments using getRegClassFor. · 7d82252d
      Akira Hatanaka authored
      No functionality change.
      
      llvm-svn: 193540
      7d82252d
    • Lang Hames's avatar
      Return early from getUnconditionalBranchTargetOpValue if the branch target is · b5281661
      Lang Hames authored
      an MCExpr, in order to avoid writing an encoded zero value in the immediate
      field.
      
      When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
      don't know what the final immediate field value should be. We shouldn't
      explicitly set the immediate field to an encoded zero value as zero is encoded
      with a non-zero bit pattern. This leads to bits being set that pollute the
      final immediate value. The nature of the encoding is such that the polluted
      bits only affect very large immediate values, explaining why this hasn't
      caused problems earlier.
      
      Fixes <rdar://problem/15155975>.
      
      llvm-svn: 193535
      b5281661
    • Logan Chien's avatar
      [arm] Implement eabi_attribute, cpu, and fpu directives. · 8cbb80d1
      Logan Chien authored
      This commit allows the ARM integrated assembler to parse
      and assemble the code with .eabi_attribute, .cpu, and
      .fpu directives.
      
      To implement the feature, this commit moves the code from
      AttrEmitter to ARMTargetStreamers, and several new test
      cases related to cortex-m4, cortex-r5, and cortex-a15 are
      added.
      
      Besides, this commit also change the Subtarget->isFPOnlySP()
      to Subtarget->hasD16() to match the usage of .fpu directive.
      
      This commit changes the test cases:
      
      * Several .eabi_attribute directives in
        2010-09-29-mc-asm-header-test.ll are removed because the .fpu
        directive already cover the functionality.
      
      * In the Cortex-A15 test case, the value for
        Tag_Advanced_SIMD_arch has be changed from 1 to 2,
        which is more precise.
      
      llvm-svn: 193524
      8cbb80d1
    • Nuno Lopes's avatar
      simplify ConstantRange::getSetSize() · 8a241520
      Nuno Lopes authored
      llvm-svn: 193523
      8a241520
    • Richard Sandiford's avatar
      [SystemZ] Set usaAA to true · 094e6097
      Richard Sandiford authored
      useAA significantly improves the handling of vector code that has TBAA
      information attached.  It also helps other cases, as shown by the testsuite
      changes here.  The only real downside I've seen is that it interferes with
      MergeConsecutiveStores.  The problem is that that optimization works top
      down, starting at the first store in the chain, and looks for cases where
      the chain result is only used by a single related store.  These related
      stores don't alias, so useAA will have rewritten all the later stores to
      use a different chain input (typically the same one as the first store).
      
      I think the advantages outweigh the disadvantages though, so for now I've
      just disabled alias analysis for the unaligned-01.ll test.
      
      llvm-svn: 193521
      094e6097
    • Richard Sandiford's avatar
      [DAGCombiner] Respect volatility when checking for aliases · 981fdeb4
      Richard Sandiford authored
      Making useAA() default to true for SystemZ showed that the combiner alias
      analysis wasn't handling volatile accesses.  This hit many of the SystemZ
      tests, but I arbitrarily picked one for the purpose of this patch.
      
      llvm-svn: 193518
      981fdeb4
    • Richard Sandiford's avatar
      Keep TBAA info when rewriting SelectionDAG loads and stores · 39c1ce4d
      Richard Sandiford authored
      Most SelectionDAG code drops the TBAA info when creating a new form of a
      load and store (e.g. during legalization, or when converting a plain
      load to an extending one).  This patch tries to catch all cases where
      the TBAA information can legitimately be carried over.
      
      The patch adds alternative forms of getLoad() and getExtLoad() that take
      a MachineMemOperand instead of individual fields.  (The corresponding
      getTruncStore() already exists.)  The idea is to use the MachineMemOperand
      forms when all fields are carried over (size, pointer info, isVolatile,
      isNonTemporal, alignment and TBAA info).  If some adjustment is being
      made, e.g. to narrow the load, then we still pass the individual fields
      but also pass the TBAA info.
      
      llvm-svn: 193517
      39c1ce4d
    • Benjamin Kramer's avatar
      SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive. · 6094f30d
      Benjamin Kramer authored
      We can't do this for the general case as saying a GEP with a negative index
      doesn't have unsigned wrap isn't valid for negative indices.
        %gep = getelementptr inbounds i32* %p, i64 -1
      
      But an inbounds GEP cannot run past the end of address space. So we check for
      the very common case of a positive index and make GEPs derived from that NUW.
      Together with Andy's recent non-unit stride work this lets us analyze loops
      like
      
        void foo3(int *a, int *b) {
          for (; a < b; a++) {}
        }
      
      PR12375, PR12376.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2033
      
      llvm-svn: 193514
      6094f30d
    • NAKAMURA Takumi's avatar
      Prune utf8 chars in comments. · 8a046439
      NAKAMURA Takumi authored
      llvm-svn: 193512
      8a046439
    • NAKAMURA Takumi's avatar
      Prune trailing linefeeds. · 0b865d44
      NAKAMURA Takumi authored
      llvm-svn: 193511
      0b865d44
    • NAKAMURA Takumi's avatar
      Target/R600: Un-tab-ify. · 4bb85f90
      NAKAMURA Takumi authored
      llvm-svn: 193510
      4bb85f90
  3. Oct 27, 2013
  4. Oct 26, 2013
    • Wan Xiaofei's avatar
      Quick look-up for block in loop. · be640b28
      Wan Xiaofei authored
      This patch implements quick look-up for block in loop by maintaining a hash set for blocks.
      It improves the efficiency of loop analysis a lot, the biggest improvement could be 5-6%(458.sjeng).
      Below are the compilation time for our benchmark in llc before & after the patch.
      
      Benchmark	llc - trunk		llc - patched	
      401.bzip2	0.339081	100.00%	0.329657	102.86%
      403.gcc		19.853966	100.00%	19.605466	101.27%
      429.mcf		0.049823	100.00%	0.048451	102.83%
      433.milc	0.514898	100.00%	0.510217	100.92%
      444.namd	1.109328	100.00%	1.103481	100.53%
      445.gobmk	4.988028	100.00%	4.929114	101.20%
      456.hmmer	0.843871	100.00%	0.825865	102.18%
      458.sjeng	0.754238	100.00%	0.714095	105.62%
      464.h264ref	2.9668		100.00%	2.90612		102.09%
      471.omnetpp	4.556533	100.00%	4.511886	100.99%
      bitmnp01	0.038168	100.00%	0.0357		106.91%
      idctrn01	0.037745	100.00%	0.037332	101.11%
      libquake2	3.78689		100.00%	3.76209		100.66%
      libquake_	2.251525	100.00%	2.234104	100.78%
      linpack		0.033159	100.00%	0.032788	101.13%
      matrix01	0.045319	100.00%	0.043497	104.19%
      nbench		0.333161	100.00%	0.329799	101.02%
      tblook01	0.017863	100.00%	0.017666	101.12%
      ttsprk01	0.054337	100.00%	0.053057	102.41%
      
      Reviewer	: Andrew Trick <atrick@apple.com>, Hal Finkel <hfinkel@anl.gov>
      Approver	: Andrew Trick <atrick@apple.com>
      Test		: Pass make check-all & llvm test-suite
      
      llvm-svn: 193460
      be640b28
  5. Oct 25, 2013
  6. Oct 24, 2013
Loading