Skip to content
  1. Mar 07, 2009
    • Duncan Sands's avatar
      Introduce new linkage types linkonce_odr, weak_odr, common_odr · 12da8ce3
      Duncan Sands authored
      and extern_weak_odr.  These are the same as the non-odr versions,
      except that they indicate that the global will only be overridden
      by an *equivalent* global.  In C, a function with weak linkage can
      be overridden by a function which behaves completely differently.
      This means that IP passes have to skip weak functions, since any
      deductions made from the function definition might be wrong, since
      the definition could be replaced by something completely different
      at link time.   This is not allowed in C++, thanks to the ODR
      (One-Definition-Rule): if a function is replaced by another at
      link-time, then the new function must be the same as the original
      function.  If a language knows that a function or other global can
      only be overridden by an equivalent global, it can give it the
      weak_odr linkage type, and the optimizers will understand that it
      is alright to make deductions based on the function body.  The
      code generators on the other hand map weak and weak_odr linkage
      to the same thing.
      
      llvm-svn: 66339
      12da8ce3
  2. Mar 06, 2009
  3. Mar 05, 2009
  4. Mar 04, 2009
  5. Mar 03, 2009
  6. Mar 02, 2009
    • Nate Begeman's avatar
      Fix a problem with DAGCombine on 64b targets where folding · a9e98122
      Nate Begeman authored
      extracts + build_vector into a shuffle would fail, because the
      type of the new build_vector would not be legal.  Try harder to
      create a legal build_vector type.  Note: this will be totally 
      irrelevant once vector_shuffle no longer takes a build_vector for
      shuffle mask.
      
      New:
      _foo:
      	xorps	%xmm0, %xmm0
      	xorps	%xmm1, %xmm1
      	subps	%xmm1, %xmm1
      	mulps	%xmm0, %xmm1
      	addps	%xmm0, %xmm1
      	movaps	%xmm1, 0
      
      Old:
      _foo:
      	xorps	%xmm0, %xmm0
      	movss	%xmm0, %xmm1
      	xorps	%xmm2, %xmm2
      	unpcklps	%xmm1, %xmm2
      	pshufd	$80, %xmm1, %xmm1
      	unpcklps	%xmm1, %xmm2
      	pslldq	$16, %xmm2
      	pshufd	$57, %xmm2, %xmm1
      	subps	%xmm0, %xmm1
      	mulps	%xmm0, %xmm1
      	addps	%xmm0, %xmm1
      	movaps	%xmm1, 0
      
      llvm-svn: 65791
      a9e98122
  7. Mar 01, 2009
  8. Feb 28, 2009
  9. Feb 27, 2009
    • Devang Patel's avatar
      It is possible that subprgoram definition is only encoding return value... · 843cc34d
      Devang Patel authored
      It is possible that subprgoram definition is only encoding return value directly, instsad of an DIArray of all argument types. 
      
      llvm-svn: 65643
      843cc34d
    • Rafael Espindola's avatar
      Refactor TLS code and add some tests. The tests and expected results are: · 000421ea
      Rafael Espindola authored
       pic |  declaration | linkage  | visibility |
      
      !pic |  declaration | external | default    | tls1.ll     tls2.ll     | local exec
       pic |  declaration | external | default    | tls1-pic.ll tls2-pic.ll | general dynamic
      !pic | !declaration | external | default    | tls3.ll     tls4.ll     | initial exec
       pic | !declaration | external | default    | tls3-pic.ll tls4-pic.ll | general dynamic
      
      !pic |  declaration | external | hidden     | tls7.ll     tls8.ll     | local exec
       pic |  declaration | external | hidden     | X                       | local dynamic
      !pic | !declaration | external | hidden     | tls9.ll     tls10.ll    | local exec
       pic | !declaration | external | hidden     | X                       | local dynamic
      
      !pic |  declaration | internal | default    | tls5.ll     tls6.ll     | local exec
       pic |  declaration | internal | default    | X                       | local dynamic
      
      The ones marked with an X have not been implemented since local dynamic is not implemented.
      
      llvm-svn: 65632
      000421ea
    • Evan Cheng's avatar
  10. Feb 26, 2009
  11. Feb 25, 2009
  12. Feb 24, 2009
  13. Feb 23, 2009
  14. Feb 22, 2009
  15. Feb 21, 2009
Loading