summaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Fixed bug with uninitialized x86_pic_base_label variable in ia32 backendexcPhilipp Serrer2018-02-16
|
* fixed bug with exchanging deleted leaders in combo optPhilipp Serrer2018-02-06
|
* Fixed changed method signatures in emit_ia32_callPhilipp Serrer2018-01-30
|
* fix return type passing in lowering for calls with exceptionsPhilipp Serrer2018-01-30
|
* Fixed changed method signatures in emit_amd64_callPhilipp Serrer2018-01-25
|
* Rebase cleanupPhilipp Serrer2018-01-25
|
* Introduce new "needs_reloaded_callee_saves" attrJonas Haag2018-01-18
|
* Break critical exception edges.Jonas Haag2018-01-18
|
* New exception label infrastructureJonas Haag2018-01-18
| | | | This is a reimplementation of the unfinished ia32 exception label code.
* Copy DWARF CFA code from ia32 to amd64 emitterJonas Haag2018-01-18
|
* bedwarf: Emit register name instead of DWARF numberJonas Haag2018-01-18
|
* Factor ia32 spill marks into generic backend codeJonas Haag2018-01-18
|
* combo: Do not merge blocks at X_except edgesJonas Haag2018-01-18
|
* HACK: Fix sparc stack biasJonas Haag2018-01-18
|
* sparc: fix prologue generationJonas Haag2018-01-18
|
* sparc: Emit jump after non-fallthrough throwing CallJonas Haag2018-01-18
|
* sparc call: Add X_regular and X_except outsJonas Haag2018-01-18
| | | | | (This is "amd64 call: Add X_regular and X_except outs" applied to the sparc backend.)
* sparc emitter: Refactor fallthrough checksJonas Haag2018-01-18
| | | | | | This applies the same refactoring that was done in 7a6a14e to the sparc backend, plus some more cleanup. As in the amd64 backend, the sparc backend uses *successor* block links for "can fallthrough?" checks.
* Refactor fallthrough checks in ia32 and amd64 emittersJonas Haag2018-01-18
| | | | | | | | Unify code related to "can fallthrough?" checks, which is implemented using irn links. The refactored code now is almost identical in the two backends, the differences being that A) amd64 doesn't have SwitchJmp and B) in the ia32 backend *predecessor* block links are used whereas in the amd64 backend *successor* block links are used.
* amd64 emitter: CleanupJonas Haag2018-01-18
|
* amd64 call: Add X_regular and X_except outsJonas Haag2018-01-18
|
* amd64 call: Add 'fragile' and 'uses_memory' flagsJonas Haag2018-01-18
| | | | | Move call's 'mem' (and 'stack') inputs to a fixed place (necessary for current 'fragile' op implementation).
* amd64 backend: Light refactoringJonas Haag2018-01-18
|
* Extend IR verifier by some X_except block checksJonas Haag2018-01-18
|
* Emit jump after non-fallthrough throwing CallJonas Haag2018-01-18
| | | | | | If a Call's X_regular block isn't fallthrough (which isn't guaranteed to be the case), we need to emit a "jmp" instruction to that block after the "call" instruction.
* Correctly handle X_except Projs in the x87 simulatorJonas Haag2018-01-18
|
* Fix X_except handling in opt_inlineJonas Haag2018-01-18
|
* Fix Raise mode in verifierJonas Haag2018-01-18
|
* lower_intrinsics: Always remove X_except outsJonas Haag2018-01-18
|
* Fix check for X_except blocks for epilogue generationJonas Haag2018-01-18
|
* Deal with X_regular blocks in cmp_stack_dependencyJonas Haag2018-01-18
| | | | | | With -fexceptions, the 'before' IncSPs of two successive calls may now be in different nodes (since the second call's 'before' IncSP is placed in the first call's X_regular block).
* be_stack: Move IncSP and other 'after' nodes into X_regular blockJonas Haag2018-01-18
|
* Fix graph properties in funccall optimizationJonas Haag2018-01-18
|
* Do not compute exec frequency of X_except blocksJonas Haag2018-01-18
|
* Add 'is_x_{regular,except}_block' and 'is_x_except_branch' checksJonas Haag2018-01-18
|
* Add is_Block_end_block helperJonas Haag2018-01-18
|
* gen: Ensure 'first_*' is last in ins/outs listJonas Haag2018-01-18
|
* Introduce X_regular and X_except outs on CallsJonas Haag2018-01-18
|
* Various fixes towards X Projs on CallsJonas Haag2018-01-18
|
* Add '-fexceptions' optionJonas Haag2018-01-18
|
* Miscellaneous verifier message improvementsJonas Haag2018-01-18
|
* Fix typos in commentsChristoph Erhardt2017-12-15
|
* Recompute out edges after normalization to single Return nodePhilipp Serrer2017-12-13
|
* Fix float values in small structs passed by valuePhilipp Serrer2017-12-13
|
* Fix empty structs as return type and paramPhilipp Serrer2017-12-13
|
* Fix small structs as function return by valuePhilipp Serrer2017-12-13
|
* Treat classes as structs in the amd64 ABI.Andreas Fried2017-12-13
| | | | | | | Technically, classes must be treated differently if they have "either a non-trivial copy constructor or a non-trivial destructor", but since there is no frontend with these features, there is no harm in treating classes and structs equally.
* Implement variadic struct arguments in amd64.Andreas Fried2017-12-13
|
* Implement amd64 calling convention in the new lowering API.Andreas Fried2017-12-13
|
* Implement a new, callback-based, lowering for calls with compounds.Andreas Fried2017-12-13
| | | | | | | | | | The difference between ABIs is so large that we cannot distingush between them with flags. Basically, we would have to implement all ABIs in lower_calls.c. Instead, we let the backends specify how parameter and result types are to be lowered. For now, all backends except IA-32 use a dummy ABI, which is the old Firm default, i.e. the SPARC ABI.