Skip to content
  1. Jul 11, 2012
    • Tom Stellard's avatar
      test commit · 73daa0f7
      Tom Stellard authored
      llvm-svn: 160056
      73daa0f7
    • Chad Rosier's avatar
      [x86 fast-isel] Rather then call llvm_unreachable() have fast-isel fall back · 43218c59
      Chad Rosier authored
      to Selection DAG isel.  Patch by Andrew Kaylor <andrew.kaylor@intel.com>.
      
      llvm-svn: 160055
      43218c59
    • Nadav Rotem's avatar
      · d2bdcebb
      Nadav Rotem authored
      When ext-loading and trunc-storing vectors to memory, on x86 32bit systems, allow loads/stores of 64bit values from xmm registers.
      
      llvm-svn: 160044
      d2bdcebb
    • Nadav Rotem's avatar
      Rename many of the Tmp1, Tmp2, Tmp3 variables to names such as Chain, Value, Ptr, etc. · 2a148668
      Nadav Rotem authored
      No functionality change.
      
      llvm-svn: 160042
      2a148668
    • Benjamin Kramer's avatar
      Remove unused variable. · 9488100d
      Benjamin Kramer authored
      llvm-svn: 160040
      9488100d
    • Nadav Rotem's avatar
      Refactor the DAG Legalizer by extracting the legalization of · de6fd282
      Nadav Rotem authored
      Load and Store nodes into their own functions.
      No functional change.
      
      llvm-svn: 160037
      de6fd282
    • Owen Anderson's avatar
      Only apply the SETCC+SITOFP -> SELECTCC optimization when the SETCC returns an... · b8844d67
      Owen Anderson authored
      Only apply the SETCC+SITOFP -> SELECTCC optimization when the SETCC returns an MVT::i1, i.e. before type legalization.
      This is a speculative fix for a problem on Mips reported by Akira Hatanaka.
      
      llvm-svn: 160036
      b8844d67
    • Akira Hatanaka's avatar
      Lower RETURNADDR node in Mips backend. · 878ad8b2
      Akira Hatanaka authored
      Patch by Sasa Stankovic.
      
      llvm-svn: 160031
      878ad8b2
    • Jack Carter's avatar
      Mips specific inline asm operand modifier 'L'. · e8cb2fc6
      Jack Carter authored
         
         Low order register of a double word register operand. Operands 
         are defined by the name of the variable they are marked with in
         the inline assembler code. This is a way to specify that the 
         operand just refers to the low order register for that variable.
         
         It is the opposite of modifier 'D' which specifies the high order
         register.
         
         Example:
         
       main()
      {
      
          long long ll_input = 0x1111222233334444LL;
          long long ll_val = 3;
          int i_result = 0;
      
          __asm__ __volatile__( 
      		   "or	%0, %L1, %2"
      	     : "=r" (i_result) 
      	     : "r" (ll_input), "r" (ll_val)); 
      }
      
         Which results in:
         
         	lui	$2, %hi(_gp_disp)
      	addiu	$2, $2, %lo(_gp_disp)
      	addiu	$sp, $sp, -8
      	addu	$2, $2, $25
      	sw	$2, 0($sp)
      	lui	$2, 13107
      	ori	$3, $2, 17476     <-- Low 32 bits of ll_input
      	lui	$2, 4369
      	ori	$4, $2, 8738      <-- High 32 bits of ll_input
      	addiu	$5, $zero, 3  <-- Low 32 bits of ll_val
      	addiu	$2, $zero, 0  <-- High 32 bits of ll_val
      	#APP
      	or	$3, $4, $5        <-- or i_result, high 32 ll_input, low 32 of ll_val
      	#NO_APP
      	addiu	$sp, $sp, 8
      	jr	$ra
      
      If not direction is done for the long long for 32 bit variables results
      in using the low 32 bits as ll_val shows.
      
      There is an existing bug if 'L' or 'D' is used for the destination register
      for 32 bit long longs in that the target value will be updated incorrectly
      for the non-specified part unless explicitly set within the inline asm code.
      
      llvm-svn: 160028
      e8cb2fc6
    • Jakob Stoklund Olesen's avatar
      Require and preserve LoopInfo for early if-conversion. · bc90a4ea
      Jakob Stoklund Olesen authored
      It will surely be needed by heuristics.
      
      llvm-svn: 160027
      bc90a4ea
    • Chandler Carruth's avatar
      Teach the LiveInterval::join function to use the fast merge algorithm, · 2207f76c
      Chandler Carruth authored
      generalizing its implementation sufficiently to support this value
      number scenario as well.
      
      This cuts out another significant performance hit in large functions
      (over 10k basic blocks, etc), especially those with "natural" CFG
      structures.
      
      llvm-svn: 160026
      2207f76c
    • Jakob Stoklund Olesen's avatar
      Run early if-conversion in domtree post-order. · 02638392
      Jakob Stoklund Olesen authored
      This ordering allows nested if-conversion without using a work list, and
      it makes it possible to update the dominator tree on the fly as well.
      
      Any erased basic blocks will always be dominated by the current
      post-order position, so the domtree can be pruned without invalidating
      the iterator.
      
      llvm-svn: 160025
      02638392
  2. Jul 10, 2012
  3. Jul 09, 2012
  4. Jul 08, 2012
Loading