daniel
7934961490
* Fix browcol.
...
- Remove another obsolete uint64 test.
git-svn-id: trunk@7659 -
2007-06-14 08:33:19 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
Jonas Maebe
51ebaa592f
* fixed tests/webtbf/tb0041 broken by r7603: check whether ordinals
...
are compatible before optimizing the checks away
git-svn-id: trunk@7616 -
2007-06-09 20:17:46 +00:00
daniel
60dee7fcf0
+ New optimization: Comparisions with evaluate to true or false if the
...
constant is outside the range of type bounds of the left expression.
I.e. "if a>0" evaluates to true if a is declared with type 1..10,
as all legal values of a are greater than zero.
git-svn-id: trunk@7603 -
2007-06-09 14:03:56 +00:00
daniel
fe5118e903
* Reduce false positives of type_h_use_div_for_int.
...
git-svn-id: trunk@7590 -
2007-06-06 19:50:04 +00:00
Jonas Maebe
5cf2511283
- removed/disabled all normalset code (except for bootstrapping), since
...
it's no longer needed
git-svn-id: trunk@7403 -
2007-05-20 11:19:36 +00:00
Jonas Maebe
76b190b723
- removed caretn and related code
...
git-svn-id: trunk@7257 -
2007-05-04 10:53:25 +00:00
florian
01de46a0f4
* don't allow logical operators on char, resolves #8780
...
git-svn-id: trunk@7181 -
2007-04-28 18:43:58 +00:00
peter
bc071f709c
* fix r7009, check also if the other node is integer type
...
git-svn-id: trunk@7032 -
2007-03-30 06:51:23 +00:00
peter
e653ab6a22
* also try to convert non-set nodes to a set in set operations
...
git-svn-id: trunk@7010 -
2007-03-27 18:37:30 +00:00
peter
ab22fd42d1
* simplify integer operations with constnat 0 or 1
...
git-svn-id: trunk@7009 -
2007-03-27 18:33:04 +00:00
Jonas Maebe
31c29a280a
* moved typechecking stuff from taddnode.simplify to taddnode.pass_typechec
...
This is needed to be able to call simplify after pass_1, because
otherwise the inserttypeconv's inserted new type conversions which
where never firstpassed (if you want to do something like that, you
have to return a new node as well so it will be firstpassed properly
-- but in this case it seems this is not needed, since inserting
those typeconversions are part of typechecking and not of simplifying,
and typechecking must be done before simplifying anyway)
git-svn-id: trunk@6836 -
2007-03-13 23:17:12 +00:00
florian
c3f22aae94
* fixed set+range on big endian systems
...
git-svn-id: trunk@6704 -
2007-03-03 19:51:34 +00:00
florian
efb025310d
* tried to restore old set behaviour for big endian targets
...
git-svn-id: trunk@6702 -
2007-03-03 17:52:55 +00:00
florian
9a0f769b2f
* cleaned up set conversion
...
* fixed conversion of var sets
git-svn-id: trunk@6644 -
2007-02-25 16:29:39 +00:00
peter
9a37c04131
* cardinal-cardinal is calculated using int64
...
* support pointer(int64) for all modes, this is needed to
support pointer(cardinal+longint) and pointer(cardinal-cardinal)
git-svn-id: trunk@6586 -
2007-02-21 11:52:06 +00:00
daniel
e8050233af
+ Patch by Thorsten Engler to optimize string comparisons for = and <> cases. (Mantis #8231 )
...
git-svn-id: trunk@6241 -
2007-01-28 10:58:52 +00:00
florian
c6d3bc813f
* fixes #8229
...
git-svn-id: trunk@6238 -
2007-01-28 08:21:08 +00:00
Jonas Maebe
d3ea2fa9e3
- removed some unneeded and sometimes wrong typecasts (could be
...
typeconv nodes as well rather than direct setelementn)
git-svn-id: trunk@6186 -
2007-01-25 15:19:47 +00:00
pierre
b486f926ce
* taddnode.first_addstring, avoid memory leak if
...
left or right is an empty string.
git-svn-id: trunk@5550 -
2006-12-07 13:03:51 +00:00
florian
7781e842fc
* varset support fixed
...
git-svn-id: trunk@5294 -
2006-11-08 22:48:44 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
yury
5a9b0949c5
* fixed wince build.
...
git-svn-id: trunk@5250 -
2006-11-05 17:55:00 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
Jonas Maebe
d5b069a935
* added missing typecheckpasses for new left/right nodes created in
...
taddnode.typecheckpass()
git-svn-id: trunk@5089 -
2006-10-30 10:29:29 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
67aa148602
* fixed softfpu support
...
+ softfpu enabled for arm-gba
git-svn-id: trunk@4939 -
2006-10-15 21:31:27 +00:00
micha
8678d52aeb
* avoid warning when pointer points to size 1 data
...
* fix variantmanager for {$T+}
git-svn-id: trunk@4861 -
2006-10-11 16:40:40 +00:00
florian
fb5e396881
+ experimental -Sv option to support vector arithmetics
...
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +00:00
micha
5f353d6fef
add warning for arithmetic on untyped pointers
...
git-svn-id: trunk@4823 -
2006-10-07 19:34:16 +00:00
peter
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
micha
d704af7216
fix compilation for {$T+} linux/win
...
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
peter
2f0ce31751
* string concat changed from function to procedure to
...
allow runtime optimization if the destination is the
same as a source parameter
* tassignmentnode now sets aktassignmentnode global that can be used
to use the left node as a destination parameter and
skip the assignment
* disabled all cpu specific shortstr concat/append
git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
florian
569c4871fc
+ first batch of varset support, as long as packset isn't changed, it doesn't change anything
...
git-svn-id: trunk@4710 -
2006-09-24 14:40:11 +00:00
olle
05d6f0e94d
macos: added a fake sysutils for use by compiler, and fixed some tests
...
git-svn-id: trunk@4549 -
2006-09-03 22:30:37 +00:00
Jonas Maebe
b4668054c5
* avoid unnecessary sign extensions for integer comparisons
...
git-svn-id: trunk@4038 -
2006-07-01 16:05:57 +00:00
Jonas Maebe
03302dc7c4
* fixed support for macpas & and | operators: they only work on booleans
...
now, and always perform short circuit boolean evaluation (also in {$b+})
git-svn-id: trunk@3745 -
2006-05-30 13:02:36 +00:00
florian
454fb81c5b
+ optimize <string>+'' and ''+<string>
...
git-svn-id: trunk@3522 -
2006-05-14 09:43:53 +00:00
florian
5d9f3cf33d
* fixed s<'', fixes 4925
...
git-svn-id: trunk@3505 -
2006-05-13 20:10:27 +00:00
Jonas Maebe
039e7143f4
* avoid some unnecessary bool->int->bool type conversions
...
git-svn-id: trunk@3184 -
2006-04-09 18:33:05 +00:00
peter
95be416b9d
* don't allow stringconst+integer
...
* change booleans in arraydef to set
* set option in arraydef to indicate a constant string so
a nicer type can be shown instead of array[0..x] of char
git-svn-id: trunk@3051 -
2006-03-27 07:22:02 +00:00
Jonas Maebe
07ce826be0
+ added ability for (mainly 32bit) code generators to directly handle
...
32bit*32bit->64bit
+ implemented the above for ppc32 (note: does not happen very often
in practice, at least not in the compiler and rtl)
+ test for the above
git-svn-id: trunk@2735 -
2006-03-04 15:09:09 +00:00
peter
a77f503a30
* optimize multiple concats for ansi/widestring
...
git-svn-id: trunk@2650 -
2006-02-20 10:58:28 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
42ec76598c
* new categories for vs_*: vs_declared, vs_initialised, vs_read,
...
vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
vs_used has been replaced by vs_read, vs_written and vs_readwritten
* the valid_for_*() routines in htypechk now get an extra parameter to
decide whether or not errors should be reported
git-svn-id: trunk@1913 -
2005-12-10 16:51:26 +00:00
peter
4c73e86058
* check for allowed floatdef operations
...
git-svn-id: trunk@1455 -
2005-10-18 05:45:50 +00:00
yury
80fbc143ab
* removed MULS->MULD substitution for wince, because MULS was added to system unit.
...
git-svn-id: trunk@1313 -
2005-10-07 13:58:37 +00:00
peter
2a6623a97f
* stringconst+pchar returns a string
...
git-svn-id: trunk@1283 -
2005-10-04 11:45:26 +00:00