Ben Shi
Ben Shi
We need to investigate this can be done by linker relaxation.
What's more, we can check if other relax optimization can be done in lld for AVR.
the LPM and ELPM instructions (in which R0 is the implicit destination) should be selected.
The following devices are affected ``` def : Device; def : Device; def : Device; def : Device; def : Device; def : Device; def : Device; def : Device;...
After https://reviews.llvm.org/D131844, `AVRExpandPseudo::expandLPMWELPMW` is the only user of `AVRExpandPseudo::scavengeGPR8`, we need to check if we can eliminate that.
Current inline assembly only support the i16 and i8 types. I may need more time to fix that.
Maybe we need to introduce 32-bit register classes.
Currently we use hand writting arrays to record features for different devices. https://github.com/llvm/llvm-project/blob/main/clang/lib/Basic/Targets/AVR.cpp#L32 https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/AVR.cpp#L38 We should change to a unique TD file, generate an .inc file, and include it in...
The crash is caused by ``` --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -25,6 +25,8 @@ #include #include +#include + using namespace clang; using namespace CodeGen; @@ -802,14 +804,19 @@ void CodeGenVTables::addVTableComponent(ConstantArrayBuilder...
With the following patch ``` --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -808,8 +808,11 @@ void CodeGenVTables::addVTableComponent(ConstantArrayBuilder &builder, return addRelativeComponent( builder, fnPtr, vtableAddressPoint, vtableHasLocalLinkage, component.getKind() == VTableComponent::CK_CompleteDtorPointer); - } else - return...