Skip to content
  1. Jul 29, 2013
  2. Jul 28, 2013
  3. Jul 27, 2013
    • Bob Wilson's avatar
      Reduce stack frame size by avoiding a large token vector on an error path. · 57217350
      Bob Wilson authored
      Beginning with svn r186971, we noticed an internal test started to fail when
      using clang built with LTO. After much investigation, it turns out that there
      are no blatant bugs here, we are just running out of stack space and crashing.
      Preprocessor::ReadFunctionLikeMacroArgs already has one vector of 64 Tokens,
      and r186971 added another.  When built with LTO, that function is inlined into
      Preprocessor::HandleMacroExpandedIdentifier, which for our internal test is
      invoked in a deep recursive cycle. I'm leaving the original 64 Token vector
      alone on the assumption that it is important for performance, but the new
      FixedArgTokens vector is only used on an error path, so it should be OK if it
      requires additional heap storage. It would be even better if we could avoid
      the deep recursion, but I think this change is a good thing to do regardless.
      <rdar://problem/14540345>
      
      llvm-svn: 187315
      57217350
    • Michael Gottesman's avatar
      [APFloat] Make all arithmetic operations with NaN produce positive NaNs. · b0e688e8
      Michael Gottesman authored
      IEEE-754R 1.4 Exclusions states that IEEE-754R does not specify the
      interpretation of the sign of NaNs. In order to remove an irrelevant
      variable that most floating point implementations do not use,
      standardize add, sub, mul, div, mod so that operating anything with
      NaN always yields a positive NaN.
      
      In a later commit I am going to update the APIs for creating NaNs so
      that one can not even create a negative NaN.
      
      llvm-svn: 187314
      b0e688e8
    • Michael Gottesman's avatar
      [APFloat] Move setting fcNormal in zeroSignificand() to calling code. · 30a90eb1
      Michael Gottesman authored
      Zeroing the significand of a floating point number does not necessarily cause a
      floating point number to become finite non zero. For instance, if one has a NaN,
      zeroing the significand will cause it to become +/- infinity.
      
      llvm-svn: 187313
      30a90eb1
Loading