florian
|
6c8eed21c4
+ implement auto inlining (-Ooautoinline)
|
13 years ago |
florian
|
25e82bb1af
* fix stack frame generation on mips(el)
|
13 years ago |
sergei
|
7f96fee752
+ Added a comment on tcgprocinfo.generate_exceptfilter operation.
|
13 years ago |
sergei
|
a85bb08a74
* Save/restore high-level code generator when processing exception filters, fixes building in Win64 with -dTEST_WIN64_SEH, Mantis #21879.
|
13 years ago |
Jonas Maebe
|
aee5380ae0
* merged trunk up to r20882
|
13 years ago |
svenbarth
|
bd19a16be9
Add support for Default() intrinsic. For now this is only (fully) supported
|
13 years ago |
florian
|
f4af507321
* inline is only a hint to the compiler which might be ignored so throw only a hint and not a warning if subroutine cannot be inlined
|
13 years ago |
florian
|
0fe22a358b
+ first version of ldr instruction scheduler on arm
|
13 years ago |
paul
|
d59c0237b2
compiler: global property can't be a class property
|
13 years ago |
svenbarth
|
a7a0ba0cf4
* Move the setup and teardown of the specialization symtable stack into two extra
|
13 years ago |
svenbarth
|
c572395f61
* pgenutil.pas, generate_specialization & psub.pas, specialize_objectdefs:
|
13 years ago |
sergei
|
cbad0abab5
+ Platform-specific exception support for x86_64-win64. Enable by cycling with OPT=-dTEST_WIN64_SEH.
|
13 years ago |
sergei
|
149218408b
* Factored part of tcgrpocinfo.generate_code (responsible for setting up tempgen and stack frame) into a separate method.
|
13 years ago |
sergei
|
f8e921e478
* Fixed code generation for constructors compiled in {$implicitexeptions off} state, or having no implicit finally frame. Exit label and finalization code have to be placed before call to AfterConstruction, so exit statements do not jump over AfterConstruction, and overall control flow is the same as in default {$implicitexceptions on} state.
|
13 years ago |
sergei
|
f6761d7939
* Handle safecall exceptions entirely in tcgtryfinallynode pass2. This simplifies things and removes the need in hidden safe_result variable.
|
13 years ago |
sergei
|
66ec137f09
* Partially reverted r19668. It turns out that the implicit finally block in constructors, besides its intended purpose, provides correct position of the exit label (more precisely, it relocates exit label to the start of 'finally' part without subsequent restoring it to original value). Optimizing it away causes exit statements in constructors to jump over AfterConstruction call.
|
13 years ago |
sergei
|
b223e104ac
Refactoring:
|
13 years ago |
florian
|
20b1e3af78
Merging of generics branch of Sven Barth
|
13 years ago |
sergei
|
270fc39432
* An open array/array of const parameter passed by value and requiring a local copy on heap (currently all targets except non-Darwin i386 ones) should not be placed into register and should force procedure to have an implicit finally block.
|
13 years ago |
sergei
|
c8e65c501a
* Don't optimize away implicit initialization/finalization procedures if corresponding clause is present in the source but is empty. Resolves #19701.
|
13 years ago |
svenbarth
|
4419dc3d34
Rebase to revision 19673
|
13 years ago |
svenbarth
|
87d9714221
Somehow the changes regarding tf_methods_specialized weren't commited, thus here they are again:
|
13 years ago |
svenbarth
|
461d231daa
Rebase to revision 19078 (directly before the merge of cpstrnew)
|
13 years ago |
svenbarth
|
594f84dc2c
Merge branch 'unique-syms'
|
13 years ago |
sergei
|
6cb6569d51
* Set pi_uses_exceptions flag when creating/firstpassing ttryexceptnode or ttryfinallynode, not when parsing try statements. It ensures that procedures with exception handling nodes created by compiler (constructors in the first place, but also for..in loops with TObject iterators, etc.) are handled the same way as ones containing exception nodes from user code.
|
13 years ago |
svenbarth
|
feeff56099
We need to flag specializations of record-/objectdef once we have generated their methods otherwise an interesting situation might occur:
|
14 years ago |
sergei
|
fa4b78363c
+ Handle safecall exceptions with a dedicated compilerproc, simplifies compiler part and reduces generated code size.
|
14 years ago |
florian
|
c6a0cafdb0
* don't generate implicit exception frames for pure assembler routines, resolves #20075
|
14 years ago |
florian
|
d7f7a9bb76
* patch by Alexander Shishkin to clean up $ifopt usage by $push/$pop, resolves #20346
|
14 years ago |
sergei
|
b997094755
+ Generate unwind bytecode for function prologues on win64.
|
14 years ago |