DontBelieveMe / helix

"Compiler Optimisation Techniques" - BSc Computer Science Final Year Project (Sheffield Hallam University)
2 stars 0 forks source link

Test f5004-legalise-struct-initialisers.c fail #28

Closed DontBelieveMe closed 2 years ago

DontBelieveMe commented 2 years ago
[2022-01-11 16:21:28.319] [general] [info] Creating module from 'C:\helix\testsuite\f5\f5004-legalise-struct-initialisers.c'
[2022-01-11 16:21:28.320] [driver] [trace] End frontend compilation
[2022-01-11 16:21:28.321] [driver] [trace] Begin middle & backend compilation
[2022-01-11 16:21:28.321] [pass_manager] [trace] Registered pass (1) 'genlegal' - [Generic] Legalise illegal constructs IR to a legal equivilant
[2022-01-11 16:21:28.321] [pass_manager] [trace] Registered pass (2) 'structslegal' - [Generic] Legalise loading & storing struct types to/from virtual registers
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (3) 'retcomb' - [Generic] Combine multiple returns into a singular exit point
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (4) 'genlower' - [Generic] Lower high level IR constructs
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (5) 'consthoist' - [ARM] Split and hoist constants to a form compatible with the ARM
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (6) 'cconv' - [ARM] Lower IR to be compatible with the platform calling convention
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (7) 'lowerallocastructs' - [Generic] Lower the stack allocations of structs to arrays
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (8) 'regalloc' - [ARM] Register allocation
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (9) 'match' - [ARM] Matches the IR to it's machine instructions and generates machine IR
[2022-01-11 16:21:28.322] [pass_manager] [trace] Registered pass (10) 'emit' - [ARM] Matches the IR to it's machine instructions and emits it as assembly to a file
[2022-01-11 16:21:28.322] [pass_manager] [trace] Pass: genlegal
[2022-01-11 16:21:28.323] [pass_manager] [trace] Validating pass 'genlegal'
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [pass_manager] [trace] Pass: structslegal
[2022-01-11 16:21:28.323] [pass_manager] [trace] Validating pass 'structslegal'
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.323] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [pass_manager] [trace] Pass: retcomb
[2022-01-11 16:21:28.324] [pass_manager] [trace] Validating pass 'retcomb'
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.324] [validate] [warning] instruction 'lfa' has no validation rules, ignoring
[2022-01-11 16:21:28.325] [pass_manager] [trace] Pass: genlower
[2022-01-11 16:21:28.325] [genlower] [debug] Found 5 instructions that require lowering
[2022-01-11 16:21:28.325] [pass_manager] [trace] Validating pass 'genlower'
[2022-01-11 16:21:28.325] [pass_manager] [trace] Pass: consthoist
[2022-01-11 16:21:28.325] [pass_manager] [trace] Validating pass 'consthoist'
[2022-01-11 16:21:28.325] [pass_manager] [trace] Pass: cconv
[2022-01-11 16:21:28.325] [critical] ******************** Internal Compiler Error ********************
[2022-01-11 16:21:28.325] [critical]     Assertion Failed!
[2022-01-11 16:21:28.325] [critical]
[2022-01-11 16:21:28.325] [critical]     File:      C:\helix\src\lower.cpp
[2022-01-11 16:21:28.325] [critical]     Line:      379
[2022-01-11 16:21:28.325] [critical]     Function:  Helix::CConv::Execute
[2022-01-11 16:21:28.326] [critical]     Condition: ARMv7::TypeSize(returnValue->GetType()) <= r0Size
[2022-01-11 16:21:28.326] [critical]     Reason:    return value can't fit in output register
[2022-01-11 16:21:28.326] [critical] ******************** Internal Compiler Error ********************