aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
AgeCommit message (Collapse)AuthorFilesLines
2013-04-02add type constraints in constructors and function arguments with universal ↵johnvg1-10/+6
quantifier (from iTask branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2218 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-02-07Add function to ti_new_functions immediately when ti_recursion_introduced is ↵johnvg1-14/+14
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
2012-08-24pass fun_info.fi_properties of the consumer to function determineProducer,johnvg1-31/+31
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
2012-08-16don't copy unmodified types in addPropagationAttributesToAType to reduce ↵johnvg1-2/+1
memory usage git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2160 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-16don't copy unmodified types in replaceIntegers to reduce memory usagejohnvg1-37/+53
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2158 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-09remove VI_Expression pointer values after copying a case alternative in the ↵johnvg1-1/+2
fusion algorithm git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2148 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-09remove several forwarding pointers in the fusion algorithmjohnvg1-15/+46
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2146 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08optimize coercionsToAttrEnv functionjohnvg1-9/+22
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2144 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08build the whole st_attr_vars list in function generateFunction, instead of ↵johnvg1-2/+12
building it lazily git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2142 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08replace function NewAttrVarId by NewAttrVar, improve caching of uniqueness ↵johnvg1-9/+6
attribute variable identifiers git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08make field aci_linearity_of_patterns of record ActiveCaseInfo strictjohnvg1-5/+5
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2138 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-07use an unboxed tail strict list for cc_linear_bits to reduce memory usagejohnvg1-22/+43
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2136 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-07fix fusion of a function that is both the consumer and the producer.johnvg1-62/+102
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
2012-08-06move computation of n_args_before_producer and n_producer_args in function ↵johnvg1-74/+70
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
2012-08-02add pattern match test using =: in expressions,johnvg1-2/+12
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
2012-07-12fix fusion of functions thats only permute the argumentsjohnvg1-157/+116
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2116 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-09bug fix: set aci_opt_unfolder to No for a case if extra argument are added ↵johnvg1-10/+24
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
2012-07-09add function make_consumer_application,johnvg1-57/+20
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
2012-07-09compute class_types using a comprehension instead of a fold with some unused ↵johnvg1-17/+4
values git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2110 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-06-15in substitute use original type (instead of copy) if possible,johnvg1-27/+25
to reduce memory usage of the compiler git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2094 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-10move type TypeCodeVariableInfo to module syntax, remove type ↵johnvg1-1/+1
DynamicValueAliasInfo, adjust imports git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2027 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-09add module expand_types containing some functions from module trans and ↵johnvg1-245/+6
module typesupport git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2025 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-08rename module StdCompare to compare_typesjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2017 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-04remove differences in layout between the compiler and the iTask compilerjohnvg1-70/+40
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1988 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-14use type FunSpecials instead of Specials for specials of functionsjohnvg1-3/+2
(to have fewer differences with the haskell frontend branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1921 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-31use type Component instead of Group in the fusion modules: partition, ↵johnvg1-253/+252
classify and trans, because function pointers for generated functions are stored in the Component, they can be found without searching the new functions list git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1895 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-30remove unused result cons_args of function transformGrooupsjohnvg1-19/+12
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1891 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-02-24git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1858 ↵johnvg1-14/+9
1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-02-23remove ImportedConstructors result from function ↵johnvg1-3/+3
convertDynamicPatternsIntoUnifyAppls, because it is always [] git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1847 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-08-04fix copy of case expression which is ajohnvg1-15/+29
call of an expanded function with too many arguments git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1797 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-09allow VI_ExpressionOrBody in instance clearVariables BoundVarjohnvg1-1/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1782 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-09unfold curried producers that are also normal producers if the producerjohnvg1-40/+154
is used in a curried application of a case expression, to prevent case's with applications that are be optimized. Whether the producer is treated as a curried or normal producer is determined during unfolding, PR_CurriedProducer is used to mark producers for which this is allowed. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1781 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08generate a new function if a non root case is used ofjohnvg1-11/+136
an application that can be fused, a function is created of the case, without the application (producer), and the new function and the application (producer) are fused later (if possible) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1780 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08allow fusion in non linear arguments for some functions thatjohnvg1-22/+81
may be copied (without duplicating work), this is intended to optimize generic bimaps git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1779 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08don't add strict let with no variablesjohnvg1-51/+62
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1778 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08don't add a strict let if a strict unused argument is a constructor withoutjohnvg1-17/+27
arguments or a basic value git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1777 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08repair the previous modificationjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1776 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08another modification that should have been committed alreadyjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1775 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08update th_attrs for AVI_Atrr (TA_TempVar _) bug fix (1.140)johnvg1-21/+22
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1774 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08enable constructor fusion for generic constructorsjohnvg1-28/+26
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1773 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08move some fields from ReadOnlyTi to new record TransformFunctionInfojohnvg1-70/+76
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1772 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08remove the AVI_Attr (TA_TempVar _)'s before unfold,johnvg1-53/+78
because types in Cases and Lets should not use TA_TempVar's git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1771 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08store type information in algebraic pattern variables in lift_patterns,johnvg1-6/+12
needed if a case function is generated git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1770 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-08instead of transCase False No this_case ro ti, use skip_over this_case ro ti,johnvg1-425/+295
because that is what transCase False No will do, rename transCase as transform_active_root_case and remove is_active and change optional aci to aci, because it is always called with True (Yes aci), rename possibly_generate_case_function as transform_active_non_root_case, changes in layout -> skip_over this_case git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1769 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-05create a copy of unfold in module transform in module trans, called copyjohnvg1-54/+384
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1767 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-05move producerRequirements from module trans to module classifyjohnvg1-233/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1765 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2009-10-12fix bug in fusion that may occur if a recursive function that containsjohnvg1-25/+29
more than one recursive call is fused with a case that is not at the root, previously the recursive calls could get different function indices, causing the compiler to crash git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1753 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2009-07-28fix uniqueness type bug (not detected because of bug in refmark)johnvg1-5/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1746 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2007-04-13implement newtypejohnvg1-3/+9
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1672 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2005-10-28remove output for debuggingjohnvg1-1/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1553 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d