about summary refs log tree commit diff
path: root/src/test/codegen/avr
AgeCommit message (Collapse)AuthorLines
2020-10-31Assert that locals have storage when usedTomasz Miąsko-0/+1
The validator in visit_local asserts that local has a stroage when used, but visit_local is never called so validation is ineffective. Use super_statement and super_terminator to ensure that locals are visited.
2020-08-24[AVR] Rename the last few remaining references from 'avr-unknown-unknown' to ↵Dylan McKay-1/+1
'avr-unknown-gnu-atmega328'
2020-08-02compiletest: Support ignoring tests requiring missing LLVM componentsVadim Petrochenkov-0/+1
2020-07-22[AVR] Correctly set the pointer address space when constructing pointers to ↵Dylan McKay-0/+93
functions This patch extends the existing `type_i8p` method so that it requires an explicit address space to be specified. Before this patch, the `type_i8p` method implcitily assumed the default address space, which is not a safe transformation on all targets, namely AVR. The Rust compiler already has support for tracking the "instruction address space" on a per-target basis. This patch extends the code generation routines so that an address space must always be specified. In my estimation, around 15% of the callers of `type_i8p` produced invalid code on AVR due to the loss of address space prior to LLVM final code generation. This would lead to unavoidable assertion errors relating to invalid bitcasts. With this patch, the address space is always either 1) explicitly set to the instruction address space because the logic is dealing with functions which must be placed there, or 2) explicitly set to the default address space 0 because the logic can only operate on data space pointers and thus we keep the existing semantics of assuming the default, "data" address space.