aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
AgeCommit message (Collapse)AuthorFilesLines
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
2005-10-26remove output for debuggingjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1551 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2005-10-26remove output for debuggingjohnvg1-2/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1550 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2005-04-08fix specified typejohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1526 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-09-16removed boolean result from substituteType and substitute: theyronny1-9/+9
could only fail in case of a kind error which is already detected elsewhere git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1376 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-05-16renamed field names of type Ident in syntax treeronny1-116/+116
s/\<mod_name\>/mod_ident/g s/\<ps_field_name\>/ps_field_ident/g s/\<ps_selector_name\>/ps_selector_ident/g s/\<pc_cons_name\>/pc_cons_ident/g s/\<class_name\>/class_ident/g s/\<gen_name\>/gen_ident/g s/\<gen_member_name\>/gen_member_ident/g s/\<gc_name\>/gc_ident/g s/\<gc_gname\>/gc_gident/g s/\<fs_name\>/fs_ident/g s/\<td_name\>/td_ident/g s/\<fv_name\>/fv_ident/g s/\<var_name\>/var_ident/g s/\<type_name\>/type_ident/g s/\<symb_name\>/symb_ident/g s/\<tv_name\>/tv_ident/g s/\<av_name\>/av_ident/g s/\<me_symb\>/me_ident/g s/\<ft_symb\>/ft_ident/g s/\<fun_symb\>/fun_ident/g s/\<cons_symb\>/cons_ident/g s/\<sd_symb\>/sd__ident/g git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1340 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-03-12extra curried fusion fixesdiederik1-107/+219
extended unused args analysis improved strictness for case instantiation dead code removal git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1329 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-02-24added fusion of unboxed lists of records, movedjohnvg1-86/+99
FI_IsNonRecursive from partition.icl and trans.icl to syntax.dcl, added FI_IsUnboxedListOfRecordsConsOrNil to mark instances of unboxed lists of records generated in type.icl git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1322 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-02-19implement fusion of overloaded cons or nil (function) of overloaded lists,johnvg1-43/+130
fix bug in fusion of overloaded cons constructor, enable producers with overloaded list pattern match git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1320 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-02-18fix bug in fusion of an overloaded list pattern match withjohnvg1-33/+57
a lazy or boxed strict list constructor git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1319 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-01-24added convertSymbolTypeWithoutCollectingImportedConstructorsjohnvg1-1/+9
to fix a bug if type synonyms are used and a .tcl file is generated git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1313 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-01-21Fix error in producerRequirementsdiederik1-5/+11
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1312 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2003-01-08Bug fix: uniqueness error in recordssjakie1-10/+11
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1308 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-12-02add strictness annotationsdiederik1-18/+55
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1297 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-12-02improve speed when not fusingdiederik1-0/+4
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1296 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-11-25fusion patches for case folds, case types, and dictionary typesdiederik1-58/+183
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1289 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-11-08Supply predef to generic dict unification;diederik1-15/+59
Fix bug with arity checks; Fix bug with unification with universal quantors. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1271 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-15disable arity check to circumvent bug in compiling the module relayout.icl ↵ronny1-1/+1
in Windows Object IO git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1235 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10use transform_trivial for 0-ary funsdiederik1-21/+8
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1232 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10prepare possibly_add_let for reusediederik1-39/+37
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1231 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10generate new versions for over-applied functionsdiederik1-1/+121
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1230 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10fuse non-recursive producersdiederik1-6/+34
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1229 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10cleanup case fun generation;diederik1-24/+30
simplify matching requirements for trivial functions git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1228 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-10transform record selectionsdiederik1-0/+21
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1227 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2002-10-09possiblyFoldOuterCasediederik1-20/+69
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1226 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d