Age | Commit message (Collapse) | Author | Files | Lines |
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2233 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
allow integers and strings as consumer for generic functions (to optimize use of generic info).
use PR_CurriedFunction instead of PR_Curried for local macro functions that are good producers.
check the arity of the function to be generated already in determineProducer,
if too large, don't yield a producer which will be rejected later,
to allow optimization of producers in subsequent arguments.
optimize trivial function calls (with arguments) before optimizing arguments,
treat constant function as trivial function.
if a function call has two identical arguments,
generate a specialized function that shares these parameters.
specialize functions with zero arity constructor arguments,
if the function is a generic function, or the constructor is a generic constructor.
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2232 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add generic case definitions in definition modules for the types used to make the generic representation,
in generic case definitions in definition modules specify what generic info and dependencies are used
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2227 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2226 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2225 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2224 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2223 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2222 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2221 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2220 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2219 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
quantifier (from iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2218 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
fix name of type function
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2217 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2215 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
this case
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2212 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2202 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
set,
because the new functions in ti_new_functions must be in the right order.
-
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2199 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
attribute,
instead of only for first argument
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2192 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
change GenericInfo
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2191 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
used at the end
of type or constructor arguments, for example: f :: Int ! -> Int or :: T = C Int *
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2189 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
openTclFile
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2185 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2184 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2177 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
instead of only the FI_IsMacroFun bit,
this will be used in future versions, for example to recognize generic functions
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2162 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
memory usage
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2160 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2158 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
(the inequality is often already present)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2156 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2154 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
(constructor) class variable
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2152 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2150 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
fusion algorithm
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2148 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2146 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2144 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
building it lazily
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2142 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
attribute variable identifiers
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2138 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2136 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
before copying the producer, the type variables are modified
to use the type of the producer when updating the types in cases and lets,
otherwise a polymorphic type may be specialized, possibly causing a type error later
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2134 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
generateFunction
to local function n_args_before_producer_and_n_producer_args
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2132 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add constructors PE_Matches and IsConstructor in module syntax
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2130 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
expression by
functions trySimplePatternT and trySimpleExpressionT
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2126 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2124 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
use Pattern instead of LhsExpression and Expression instead of RhsExpression
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2122 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2120 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
don't create a list of arrays with variable references for each case alternative,
instead allocate a few arrays and reuse these, unify and combine the reference counts after each alternative,
optimize functions unify_counts and combine_counts,
don't sort the case alternatives twice
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2118 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2116 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
to the case expression,
because the case expression is not identical to the consumer anymore after adding arguments,
don't fold in local function possiblyFoldOuterCase if aci_opt_unfolder is No
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2114 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
remove some unused local variables and functions,
replace field tfi_geni by tfi_n_args_before_producer and tfi_n_producer_args
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2112 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
values
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2110 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|