Commit Graph

26553 Commits

Author SHA1 Message Date
Sven/Sarah Barth
19cee9b841 + mark the def for a capturer class with a corresponding object option 2022-11-06 22:01:48 +01:00
Sven/Sarah Barth
a714e2ff35 * fix #39981: retrieve the symbol that returns the desired procdef/procvardef not maybe the Self or something else as we need that symbol to differentiate the procdefs
+ added test
2022-11-06 22:01:48 +01:00
Sven/Sarah Barth
3c2703787c * ensure that newly created tloadparentfpnodes have a valid resultdef as they might be created in situation where the loadnode itself is no longer typechecked 2022-11-06 22:01:48 +01:00
J. Gareth "Curious Kit" Moreton
c40f518de4 * x86: "x and ((1 shl y) - 1)" to BZHI adapted for in_and_assign_x_y 2022-11-06 15:42:09 +00:00
J. Gareth "Curious Kit" Moreton
7da9b4a988 * x86: The code generator will now attempt to manipulate "x and ((1 shl y) - 1)" to use BZHI 2022-11-06 15:42:09 +00:00
J. Gareth "Curious Kit" Moreton
e748e4c7ab * x86: Added new emit_reg_ref_reg routine and related methods to support BMI2 instructions 2022-11-06 15:42:09 +00:00
Jonas Maebe
95f94a279c llvmdbg: fixes for method debug info
Mark "self" parameter as artificial

Add methods to the scope of the class/record rather than to the file scope

Add the vmt field, strip the "($)hidden" prefix from its name, and emit its
real type
2022-11-06 16:41:25 +01:00
Jonas Maebe
c5cdfbd9c0 dwarf-eh: don't emit header if there's no data to emit 2022-11-06 16:41:25 +01:00
florian
1b08b89b7b * check if a target really supports safecall before calling load_safecallresult_node 2022-11-06 16:38:01 +01:00
florian
3db1415a44 * generate correct dfa for subroutines declared as safecall 2022-11-05 16:56:24 +01:00
florian
e67670fa70 * changed of do_optdeadstoreelim must be passed by reference as noted by Alexey Torgashin 2022-11-03 19:01:02 +01:00
florian
342524c312 * run dead store elimination multiple times if needed 2022-11-02 22:14:12 +01:00
florian
a0366d7d28 * dead store elimnation should not remove statements which can cause an exception 2022-11-02 22:13:40 +01:00
florian
3f7bf0fd70 * stop generation of typed array constants if the size does not match, resolves #39980 2022-11-01 21:16:31 +01:00
florian
0eee70ac81 * fix FindUnitSymtable for exception symtables, resolves #24801 and #39974
* more consistent naming of exceptsymtable enumeration symbol
2022-10-31 20:19:10 +01:00
J. Gareth "Curious Kit" Moreton
dbd8259c48 * x86: Fixed mistake in var9 optimisation under -Os; "andl $255,%eax" is not
smaller than "movzbl %al,%eax" because the immediate is sign-extended,
	not zero-extended, so $255 will be stored as a 32-bit value.
2022-10-31 18:40:23 +00:00
Pierre Muller
92cc78e723 Allow cycle to finish successfully with -dEXTDEBUG without ALLOW_WARNINGS=1 2022-10-31 07:09:37 +01:00
Jonas Maebe
6d3e3d06e2 Linux: don't discard CFI when using it for exceptions 2022-10-30 21:57:19 +01:00
Jonas Maebe
57935a895c Darwin: really fix -Xg for DWARF4 2022-10-30 21:57:19 +01:00
Jonas Maebe
e62cf5b9e7 systems_iphonesym -> systems_iphonesim
It's a simulator, not a symbolator
2022-10-30 21:57:18 +01:00
J. Gareth "Curious Kit" Moreton
3ba9cf5b4f * x86: PostPeepholeOptTestOr has different debug messages for each found instruction, and also tests for BEXTR and BZHI. 2022-10-30 16:16:56 +00:00
J. Gareth "Curious Kit" Moreton
a7d1f7d771 * x86: FuncMov2Func now has code to remove "mov %reg,%reg" (since it doesn't get removed in Pass 2). 2022-10-30 16:06:01 +00:00
J. Gareth "Curious Kit" Moreton
3d805b8a9a * x86: FuncMov2Func moved to separate method and also called by OptPass2MOV. 2022-10-30 16:06:01 +00:00
J. Gareth "Curious Kit" Moreton
d35be8a9ea * x86: Extended FuncMov2Func optimisation to handle 1, 3 and 4-operand functions 2022-10-30 16:06:01 +00:00
J. Gareth "Curious Kit" Moreton
9fc2b9062d * x86: Updated Mov0LblCmp0Jne optimisation to work when alignment hints appear before the label 2022-10-30 15:58:43 +00:00
florian
a1064ad8fd + MovSubCmp2MovSub optimization 2022-10-30 16:58:09 +01:00
Pierre Muller
ae12a79bf7 Avoid string truncation 2022-10-30 10:59:31 +01:00
Pierre Muller
dce70b3b70 Short version of the mips code genration bug 2022-10-29 21:34:00 +01:00
Jonas Maebe
f18524f2fe Darwin: fix mac0S 11.0 version string
Prevents LLVM warnings
2022-10-29 14:24:37 +02:00
Jonas Maebe
cd8ddffe42 AArch64: X18 is not a volatile register
It may be unused on some platforms, but in general it's reserved for OS library
usage (usually related to TLS)
2022-10-29 14:24:37 +02:00
Jonas Maebe
49fb1b4c29 RTTI: don't generate full RTTI for internal types
These are types created by the code generator for internal purposes, and hence
are never queried by user code
2022-10-29 14:24:37 +02:00
Sven/Sarah Barth
f0e31628ad * ensure that hmodule is initialized correctly 2022-10-29 12:15:59 +02:00
Sven/Sarah Barth
e050a019a2 * fix #29859: ensure that it's correctly passed down into generate_specialization whether a unit name was provided for the specialization and if so search the generic only in that unit
+ added tests
2022-10-28 17:40:53 +02:00
Sven/Sarah Barth
35a57bac94 * generate the generic name for a specialization of a generic interface alias in the same way as for specializations in general 2022-10-28 17:36:22 +02:00
Sven/Sarah Barth
399d82e1da - remove unused consume_generic_interface; it has been superseded by handle_generic_interface in 17a0ac7fc0 2022-10-28 13:57:02 +02:00
florian
c75bb80b14 * more debug messages
* better exit codes for test
2022-10-26 23:20:18 +02:00
Pierre Muller
49ddf159b2 Fix internalerror generated with riscv32 compiler.
Fix
  Compiling ./fcl-passrc/src/pscanner.pp
  pscanner.pp(2512,40) Fatal: Internal error 2006010801
  error generated for riscv32-linux target after commit #c83e6c34
  by correcting expectloc for riscv32 for 64-bit comparisons.
  Add a small test.
2022-10-25 18:42:14 +02:00
florian
be401422fd * more warnings after last commit fixed 2022-10-24 22:52:52 +02:00
florian
3fa77a4f62 * fix life information propagation for while loops, resolves #39971
* warnings/errors fixed which are caused by the new life information propagation
  + test
2022-10-24 22:13:43 +02:00
florian
86547d35d7 + apply OpTest/Or2Op optimization to ANDN as well
+ DebugMsg for OpTest/Or2Op added
2022-10-23 22:10:35 +02:00
J. Gareth "Curious Kit" Moreton
a1ea1dd98e * x86: Changed BMI2 check to BMI1 for ordinal ANDN optimisation 2022-10-22 21:08:36 +00:00
Pierre Muller
f3179cb718 Add system_powerpc_wii to supported_targets of powerpc generic GNU assembler 2022-10-22 15:34:38 -05:00
J. Gareth "Curious Kit" Moreton
626e23d89f * x86: The code generator will now attempt manipulate "x and (not y)" (where x and y are ordinals) to use ANDN. 2022-10-22 13:13:44 +00:00
J. Gareth "Curious Kit" Moreton
567244007e * x86: Improvement to bug fix so an optimisation can still be made even if the other register is in use 2022-10-22 13:07:16 +00:00
J. Gareth "Curious Kit" Moreton
41b8f6a42e * x86: Bug fix where improved AddMov2Mov optimisation didn't
check to see if the other register was modified in between
2022-10-22 13:07:16 +00:00
florian
2b48afe151 * check if optinfo is assigned before using it, resolves #39913 2022-10-21 21:14:39 +02:00
florian
2c51abf40d + print optinfo pointer if set 2022-10-21 21:13:28 +02:00
Martin
dd0711a27e Fix incorrect dwarf entry count. Issue #39928 introduced in 1b6982107f 2022-10-20 20:03:23 +00:00
florian
e142953c6d * make the hidden high parameter for short strings a byte for 8 bit CPUs 2022-10-19 22:48:54 +02:00
J. Gareth "Curious Kit" Moreton
45b1d592f5 * x86: Bug fix where "mov $0,%reg" was inserted on the wrong side of a SETcc instruction 2022-10-18 20:47:42 +00:00