Skip to content
Snippets Groups Projects
  1. Apr 24, 2003
    • gerd's avatar
      ANSI test fixes, interpreted code. · cac10792
      gerd authored
      	* src/compiler/ir1opt.lisp (recognize-known-call): Don't inline if
      	*converting-for-interpreter*.  This suppresses inlining when
      	generating IR1 for interpretation because no type-checking IR1 is
      	generated in this case, and the interpreter, internal-apply-loop
      	for instance, doesn't do type checks is some other way either.
      cac10792
  2. Mar 04, 2001
  3. Sep 26, 2000
  4. Aug 09, 2000
    • dtc's avatar
      Add the ability to delay IR1 transforms, giving type and constraint · 0495a6a2
      dtc authored
      propagation a chance before transforming to less amiable forms.
      A transform may now choose to be delayed by calling delay-transform
      giving a reason. The two supported reasons are :optimize to delay
      until IR1 optimization has completed, and :constraint to delay until
      after constraint propagation.
      0495a6a2
  5. Jul 07, 2000
  6. Jul 06, 2000
    • dtc's avatar
      Reworking of the values-type system to overcome a number of inconsistencies · daf333f4
      dtc authored
      causing problems:
      
      o Redefine coerce-to-values to convert a single value type into (values type),
        rather than the former definition (values type &rest t). A single value
        type such as fixnum is now equivalent to (values fixnum). Values-type-union
        and values-type-intersection will canonicalise values types with a
        single value such as (values fixnum) back to a single value type
        such as fixnum.
      
      o Now when the compiler makes assertions for the first value of
        continuations that may be generating multiple values it asserts the
        type as (values type &rest t), or as (value &optional type &rest t) if
        it is not sure that the continuation does generate a value.
      
      o Enhance the type check generation to better handle the now common
        values types with optional and rest arguments. Add the new function
        Values-types-asserted which converts asserted optional and rest
        arguments to required arguments that have been proven to be delivered,
        Thus an assertion such as (values &optional fixnum &rest t) will
        generate a fixnum type check if the proven type if (values t).
      
      o The compiler is now far more likely to pickup attempts to use an
        assertion to select a subset of values. For example
        (the (values fixnum) (values x y)) will generated a compiler warning.
      
      o Update single values type assertions where appropriate to clarify that
        the received values may be optional or that multiple values may be
        received. For example, a macro argument which had been asserted to be
        a list via (the list ,...) would now be asserted to be
        (the (values &optional list &rest t)) etc.
      
      o Have the IR1 translator for THE convert single value types into
        (values &optional type &rest t) so that code such as
        (the fixnum (values x y)) will still work acceptably. This does not
        restrict the possible type assertions as the values types may be used
        and are not modified.
      daf333f4
    • dtc's avatar
      Enhance ir1-optimize-mv-bind to propagate the type of optional or rest · 6998c508
      dtc authored
      value types, using the new support function values-types-defaulted.
      6998c508
    • dtc's avatar
      o Skip substitute-single-use-continuation if CONT's assertion is · 38ca88d0
      dtc authored
        incompatbile with the proven type of ARG, such as when ARG
        returns multiple values and CONT has a single value assertion.
      
      o After propagate-let-args, only delete the let when none of
        the variables are set, otherwise an unreferenced variable that is set
        can end up without a home which would be unexpected by later stages
        of the compiler.
      
      o Correct and enhance the values deftransform to adjust the node continuation
        asserted type which may otherwise be inconsistent with the new single value
        type, and set the node derived type to the received single-value-type.
      38ca88d0
  7. Feb 25, 1999
  8. Feb 24, 1998
    • dtc's avatar
      When constant-folding succeeds alway transform the call so that even · ca288539
      dtc authored
      non-flushable functions are flushed.  For single value calls it had
      been just unlinking the result and inserting the constant but this
      failed to flush the call if it didn't have a flushable attribute, for
      example numeric constant coercions were not being flush when
      successful leading to rather inefficient code.
      ca288539
  9. Oct 31, 1994
  10. Feb 11, 1994
  11. Jan 06, 1994
  12. Aug 31, 1993
  13. Aug 19, 1993
  14. May 12, 1993
  15. May 11, 1993
  16. Mar 19, 1993
  17. Mar 14, 1993
  18. Feb 03, 1993
    • ram's avatar
      Fixed VALIDATE-CALL-TYPE to correctly handle calls where there is no · 7305cf47
      ram authored
      function type guarding the call (for example, calls to lambdas).  In this
      case, we still want to call RECOGNIZE-KNOWN-CALL, since it will figure
      out what leaf we are referencing, and might also do something else
      interesting: inline expansion, etc.
      7305cf47
  19. Jan 13, 1993
  20. Nov 03, 1992
  21. Sep 24, 1992
  22. Sep 23, 1992
  23. Sep 21, 1992
  24. Sep 16, 1992
  25. Sep 15, 1992
  26. Sep 07, 1992
  27. Aug 04, 1992
  28. Jul 31, 1992
  29. Jul 22, 1992
  30. Jun 04, 1992
  31. Jun 03, 1992
  32. Apr 14, 1992
  33. Apr 02, 1992
  34. Apr 01, 1992
  35. Feb 19, 1992
  36. Feb 11, 1992
  37. Jan 25, 1992
  38. Dec 20, 1991
Loading