florian
17d3da7266
* variables where the address is taken could have aliases so they aren't invariant
...
git-svn-id: trunk@11806 -
2008-09-18 19:08:57 +00:00
florian
0b5951fa14
+ first full implementation of induction variable strength reduction
...
git-svn-id: trunk@11805 -
2008-09-18 18:49:09 +00:00
florian
61dbf89bdb
* set successor properly for for-nodes
...
+ CalcDefSum
git-svn-id: trunk@11804 -
2008-09-18 18:33:43 +00:00
florian
ecd05a1043
+ framework for strength reduction of induction variables
...
+ constant multiplications can be eliminated testwise
git-svn-id: trunk@11803 -
2008-09-18 16:53:36 +00:00
florian
3294c59a73
* renamed optunrol into optloop
...
git-svn-id: trunk@11798 -
2008-09-17 20:21:19 +00:00
Jonas Maebe
6b473862cf
* give an error stating that you have to use the latest released compiler
...
to build 2.3.1 since the unicode branch merge
git-svn-id: trunk@11795 -
2008-09-16 21:59:15 +00:00
tom_at_work
fbbbf33be1
* removed superfluous masking of rotation count for rol/ror inlines
...
git-svn-id: trunk@11789 -
2008-09-15 19:37:47 +00:00
florian
cd6b57c733
* fixed constant char to unicodestring conversion
...
git-svn-id: trunk@11779 -
2008-09-14 17:19:20 +00:00
Jonas Maebe
4971e432de
* reduced register pressure when indexing arrays with regvars (regvar
...
no longer needs to be copied to a temporary register if it isn't
modified)
git-svn-id: trunk@11777 -
2008-09-14 16:11:22 +00:00
florian
2e89b30e86
* fixed wrongly written system.$unicodetype type definition
...
* improved code generation for unicodestrings
git-svn-id: trunk@11776 -
2008-09-14 15:22:32 +00:00
tom_at_work
3a4940e9c2
* fixed compilation with -dEXTDEBUG after adding ROL/ROR internal opcodes
...
git-svn-id: trunk@11774 -
2008-09-13 20:37:43 +00:00
Jonas Maebe
597622d313
* moved the forwardchecksyms back to symbase (but the main functionality
...
remains in symtable) to simplify (and fix) its memory management
git-svn-id: trunk@11772 -
2008-09-13 19:59:21 +00:00
tom_at_work
8a5a6db065
* rol/ror inlines for powerpc/powerpc64 (only for 32/64 bit operands for now)
...
git-svn-id: trunk@11770 -
2008-09-13 16:29:42 +00:00
florian
9fb21f5c9b
* target flags for x86_64-freebsd fixed
...
* use external assembler on x86_64-freebsd for now because dwarf doesn't work with the internal one
git-svn-id: trunk@11769 -
2008-09-13 15:50:32 +00:00
florian
844c05ca2e
* exports need pic on x86_64-freebsd
...
git-svn-id: trunk@11768 -
2008-09-13 15:46:33 +00:00
florian
3417a6e790
* line breaks fixed
...
git-svn-id: trunk@11764 -
2008-09-13 14:51:48 +00:00
Jonas Maebe
0b815a6fff
- removed global "resolving_forward" variable (was no longer used)
...
* moved forward type checking from pdecl/symbase to symtable/symsym
git-svn-id: trunk@11763 -
2008-09-13 12:28:55 +00:00
Jonas Maebe
bed6a0faa9
* fixed memory leaks
...
git-svn-id: trunk@11762 -
2008-09-13 12:20:23 +00:00
Jonas Maebe
7bfe1f7865
* fixed indentation
...
* fixed use of instruction instance after it has been freed
git-svn-id: trunk@11761 -
2008-09-13 12:20:01 +00:00
florian
b178b08ba7
Merged revisions 11665-11738 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/unicodestring
........
r11665 | florian | 2008-08-30 13:30:17 +0200 (Sat, 30 Aug 2008) | 1 line
* continued to work on unicodestring type support
........
r11666 | florian | 2008-08-30 19:02:26 +0200 (Sat, 30 Aug 2008) | 2 lines
* expectloc for wide/ansi/unicode strings is LOC_CONSTANT or LOC_REGISTER now
........
r11667 | florian | 2008-08-30 20:42:37 +0200 (Sat, 30 Aug 2008) | 1 line
* more unicodestring stuff fixed, test results on win32 are already good
........
r11670 | florian | 2008-08-30 23:21:48 +0200 (Sat, 30 Aug 2008) | 2 lines
* first fixes for unix bootstrapping
........
r11683 | ivost | 2008-09-01 12:46:39 +0200 (Mon, 01 Sep 2008) | 2 lines
* fixed 64bit bug in iconvenc.pas
........
r11689 | florian | 2008-09-01 23:12:34 +0200 (Mon, 01 Sep 2008) | 1 line
* fixed several errors when building on unix
........
r11694 | florian | 2008-09-03 20:32:43 +0200 (Wed, 03 Sep 2008) | 1 line
* fixed unix compilation
........
r11695 | florian | 2008-09-03 21:01:04 +0200 (Wed, 03 Sep 2008) | 1 line
* bootstrapping fix
........
r11696 | florian | 2008-09-03 21:07:18 +0200 (Wed, 03 Sep 2008) | 1 line
* more bootstrapping fixed
........
r11698 | florian | 2008-09-03 22:47:54 +0200 (Wed, 03 Sep 2008) | 1 line
+ two missing compiler procs exported
........
r11701 | florian | 2008-09-04 16:42:34 +0200 (Thu, 04 Sep 2008) | 2 lines
+ lazarus project for the linux rtl
........
r11702 | florian | 2008-09-04 16:43:27 +0200 (Thu, 04 Sep 2008) | 2 lines
+ set unicode string procedures
........
r11707 | florian | 2008-09-04 23:23:02 +0200 (Thu, 04 Sep 2008) | 2 lines
* fixed several type casting stuff
........
r11712 | florian | 2008-09-05 22:46:03 +0200 (Fri, 05 Sep 2008) | 1 line
* fixed unicodestring compilation on windows after recent unix changes
........
r11713 | florian | 2008-09-05 23:35:12 +0200 (Fri, 05 Sep 2008) | 1 line
+ UnicodeString support for Variants
........
r11715 | florian | 2008-09-06 20:59:54 +0200 (Sat, 06 Sep 2008) | 1 line
* patch by Martin Schreiber for UnicodeString streaming
........
r11716 | florian | 2008-09-06 22:22:55 +0200 (Sat, 06 Sep 2008) | 2 lines
* fixed test
........
r11717 | florian | 2008-09-07 10:25:51 +0200 (Sun, 07 Sep 2008) | 1 line
* fixed typo when converting tunicodestring to punicodechar
........
r11718 | florian | 2008-09-07 11:29:52 +0200 (Sun, 07 Sep 2008) | 3 lines
* fixed writing of UnicodeString properties
* moved some helper routines to unicode headers
........
r11734 | florian | 2008-09-09 22:38:55 +0200 (Tue, 09 Sep 2008) | 1 line
* fixed bootstrapping
........
r11735 | florian | 2008-09-10 11:25:28 +0200 (Wed, 10 Sep 2008) | 2 lines
* first fixes for persisten unicodestrings
........
r11736 | florian | 2008-09-10 14:31:00 +0200 (Wed, 10 Sep 2008) | 3 lines
Initialized merge tracking via "svnmerge" with revisions "1-11663" from
http://svn.freepascal.org/svn/fpc/trunk
........
r11737 | florian | 2008-09-10 21:06:57 +0200 (Wed, 10 Sep 2008) | 3 lines
* fixed unicodestring <-> variant handling
* fixed unicodestring property reading
........
git-svn-id: trunk@11739 -
2008-09-10 20:14:31 +00:00
Jonas Maebe
156acf3817
* fixed version of r11719 (faster parsing of units with lots of declarations
...
in many different type blocks)
git-svn-id: trunk@11722 -
2008-09-07 13:51:04 +00:00
Jonas Maebe
e43ae1ceee
* use p.resultdef (representing a property array range) before freeing p
...
git-svn-id: trunk@11721 -
2008-09-07 13:31:39 +00:00
Jonas Maebe
f35051f76e
- reverted r11719, there are still some problems with it
...
git-svn-id: trunk@11720 -
2008-09-07 12:45:08 +00:00
Jonas Maebe
632abdace8
* keep the syms that need to be checked for forward definitions in a
...
separate list, so that procsyms, constsym, varsyms etc are not checked
and so that every sym is checked only once (rather than at the end
of every type block). This makes parsing units with lots of declarations
much faster (e.g., compiling MacOSAll is now 2 to 3 times faster)
git-svn-id: trunk@11719 -
2008-09-07 12:24:57 +00:00
Jonas Maebe
2b067a427d
* give warning if a routine in the interface of a non-interface-only
...
macpas routine is not implemented and therefore considered to be
external
git-svn-id: trunk@11703 -
2008-09-04 18:15:26 +00:00
peter
e90ce867d9
* fphashlist, update hashcapacity also if capacity is changed
...
git-svn-id: trunk@11699 -
2008-09-03 21:04:53 +00:00
peter
060bdbcb47
* fix writing of goto node to ppu
...
* replace derefnode with resolveppuidx method that only needs to be
implemented for nodes referencing other nodes
* fix IE when a label is not defined in inline function
git-svn-id: trunk@11697 -
2008-09-03 20:46:04 +00:00
michael
d2169a7e43
* In case no default is specified and no NoDefault is present, act as if NoDefault was given. (bug ID 10080, now we are Delphi compatible)
...
git-svn-id: trunk@11682 -
2008-09-01 10:05:52 +00:00
Jonas Maebe
02913dc738
* fixed oo_is_forward flag (from old patch by Dave Strodt)
...
git-svn-id: trunk@11662 -
2008-08-29 07:42:21 +00:00
Jonas Maebe
ffeba2fd10
* use LOC_REGISTER instead of LOC_CREGISTER for constant string pointers
...
git-svn-id: trunk@11661 -
2008-08-28 21:03:14 +00:00
Jonas Maebe
3f39c95163
* fixed asd_references for ansi/widestrings on Darwin
...
git-svn-id: trunk@11658 -
2008-08-27 22:38:05 +00:00
florian
9955d5b061
o patch from Sergej Gorelkin to improvement code generation for string literals
...
* Replaces linear search through assembler list by the hash lookup.
This considerably improves performance on large projects
(one example is winunits-jedi package, in which tcgstringconstnode.pass_generate_code
was top #1 in calltree, consuming about 12% IRefs).
* Enables reusing memory locations for widestring constants
(and in general, the same approach may be used for any other type of constants).
* Saves a sizeof(pointer) bytes per constant, by removing a location
which points to the string. This location is necessary for the
typed consts which may be modified, but redundant for string literals
because the language does not allow to modify string literals in any way.
git-svn-id: trunk@11657 -
2008-08-27 15:16:45 +00:00
florian
e27937106f
- removed obsolete USECMOV define
...
git-svn-id: trunk@11645 -
2008-08-24 12:46:42 +00:00
florian
e89ee84c53
* ignore $region/$endregion directives, resolves #11937
...
git-svn-id: trunk@11643 -
2008-08-23 18:42:14 +00:00
florian
9a83b1d275
* split typecast_string_to_string into simplify and firstpass, allows better constant propagation when inlining, resolves #11327
...
git-svn-id: trunk@11636 -
2008-08-23 07:29:30 +00:00
florian
615619804a
+ set node complexity of const. string nodes to 1
...
+ better approximation if a tmp. location for a parameter when inlining can be omitted
git-svn-id: trunk@11635 -
2008-08-23 07:25:53 +00:00
Tomas Hajny
b7339852e1
* reverted previous changes, proper fix still to be found :-(
...
git-svn-id: trunk@11626 -
2008-08-21 23:58:07 +00:00
Tomas Hajny
ca513b520f
* another attempt to fix casing for generated OS/2 import libraries
...
git-svn-id: trunk@11625 -
2008-08-21 22:39:04 +00:00
florian
1c0bd054f4
+ tfornode.simply which removes for loops being never executed
...
* handle function results correctly in life dfa
* handle for loops with at least one iteration better in life dfa
o resolves #8151
git-svn-id: trunk@11624 -
2008-08-21 21:38:50 +00:00
Tomas Hajny
512ffe26f5
* use modulename rather than realmodulename for import libraries to avoid packaging issues in case of different casing - 'unit X' in x.pas
...
git-svn-id: trunk@11623 -
2008-08-21 21:10:06 +00:00
florian
369ed493f2
* new node flag nf_modify to mark nodes being read and then written by one load node
...
* dfa takes care of nf_modify to create better life information
o resolves #11846 and #11849
git-svn-id: trunk@11615 -
2008-08-20 21:35:05 +00:00
Jonas Maebe
5feba9b3d7
* also free memory when a destructor is called without an explicit
...
instance reference (mantis 11896)
* fixed double destructor call in tests/test/cg/tcalcla1.pp which
caused an error after this change
git-svn-id: trunk@11599 -
2008-08-17 12:38:41 +00:00
Jonas Maebe
76ce35b905
* method definitions in "child" interfaces also hide those in "parent"
...
interfaces, even if they only differ in resulttype (mantis #11862 )
* fixing this required that multiple entries for the same method in a
interface vmt are all written out (change in
ImplementedInterface.AddImplProc)
git-svn-id: trunk@11595 -
2008-08-16 20:08:25 +00:00
Jonas Maebe
c65f8e7652
* safecall is only supposed to do anything for Windows targets. Removed
...
partial implementation for other targets and run test only for Windows
git-svn-id: trunk@11593 -
2008-08-16 14:46:20 +00:00
Jonas Maebe
6d0326a55b
* don't call procvars passed to formal parameters (mantis #11861 )
...
git-svn-id: trunk@11592 -
2008-08-16 14:40:51 +00:00
Jonas Maebe
6697f173b6
* the fact that a procedure is local does not mean that it by definition
...
does not need a GOT pointer (mantis #11852 )
git-svn-id: trunk@11586 -
2008-08-16 08:12:23 +00:00
florian
43f3b72139
* continued to play with avr
...
git-svn-id: trunk@11584 -
2008-08-15 13:52:54 +00:00
yury
8818df640f
* Fixed passing of open array of wide string literals to function which expects 'array of pwidechar' parameter in case source file has utf8 encoding. Compiler thrown the following error in such case: Incompatible type for arg no. 1: Got "Array Of Const/Constant Open Array of WideString", expected "Open Array Of PWideChar".
...
+ Test for this issue.
git-svn-id: trunk@11581 -
2008-08-14 18:55:10 +00:00
florian
07182fba98
* continued work on avr-embedded
...
git-svn-id: trunk@11575 -
2008-08-14 14:23:25 +00:00
marco
13093ab53c
* fix for #11865 -Oppentium3
...
git-svn-id: trunk@11569 -
2008-08-14 10:24:06 +00:00