What libc/libm and (sub)architecture is this?
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Yesterday
Fri, Apr 9
When integrating this change to our downstream toolchain, the new tests for scalbn and scalbnf fails:
Feb 25 2021
Sep 17 2020
I don't mean to be nit-picking... but aren't all these [ASAN] patches only applies to RV-64? maybe mention in commit msg that RV-32 is not supported?
Sep 16 2020
Fixed comment and lint
Addressed comments by @jrtc27
rebase & ping..
Sep 3 2020
Aug 25 2020
In D84414#2234267, @lenary wrote:Ok, so any compilation units without -fsanitize=shadow-call-stack should be compiled with -ffixed-x18 if you want to link those together. That is reasonable. My question was whether we can ensure that -fsanitize=shadow-call-stack can imply -ffixed-x18 rather than having to pass both options.
It is my understanding that all functions in a CU with -fsanitize=shadow-call-stack will get the SCS function attribute, so why can't we use that attribute to work out whether x18 should be reserved, rather than using -ffixed-x18? You'll see RISCVRegisterInfo::getReservedRegs reserves fp and bp only if they're needed by the function (which can be based on attributes or other info), rather than using isRegisterReservedByUser - which seems cleaner to me.
Aug 24 2020
In D84414#2234112, @lenary wrote:Why do we have to pass -ffixed-x18 when compiling? Is it enough to just reserve x18 whenever the function has the shadow call stack attribute?
IMHO, the patch is in good shape. As we discussed in the bi-weekly meetings, RV32E only has 16 registers. Systems based on RV32E may have limited memory as well. Besides, LLVM does not have full support for RV32E yet. We can commit this patch as-is and change it later if RV32E needs SCS.
Aug 19 2020
can you generate the diff with full context?
Jul 28 2020
rebased..
Jul 27 2020
clang-formatted.
Addressed styling & code clarity issues.
Jul 23 2020
clang-formated RISCVFrameLowering.cpp
Sep 27 2019
rebased moved to monorepo
Sep 26 2019
Jul 25 2019
ping?
Jul 23 2019
For the case in this issue, Start and L are not enough, we also need Stride, to calculate correct MinStart, requiring getUnsignedRangeAtScope() take to SCEV* parameters, I think it's a little confusing.
Added new test
Jun 20 2019
ping...
Jun 13 2019
ping?
ping?
Jun 11 2019
Renamed UnrollByMaxCount to FullUnrollMaxTripCount, note this is not to be confused with member variable UP.FullUnrollMaxCount.
Changed debug output to accurately reflect partial or runtime unrolling.
Jun 10 2019
Jun 7 2019
Wouldn't I want to (fully) unroll loops especially those with low trip count to reduce overhead/enable further optimizations?
Do you have performance/code size numbers?
In D62989#1534692, @Meinersbur wrote:What problem is this solving?
define dso_local void @hoge_3(i8 %arg) { entry: %x = load i32, i32* @global, align 4 %y = load i8*, i8** @global.1, align 4 %0 = icmp ult i32 %x, 17 br i1 %0, label %loop, label %exit
Jun 6 2019
re-upload with full context
Re-upload patch with full context.
Jun 3 2019
Oct 11 2018
Oct 10 2018
Sep 25 2018
Sep 24 2018
Moved collecting dependent rebased and checking size of ToBeRebased prior to emitting bitcast of base constants
Added bb labels to check in the test case.
Sep 21 2018
In D52243#1241540, @dmgreen wrote:This does seem, from the tests I ran, to reduce codesize on average. Especially on Thumb1.
Cleaned up test case.
Added opt tests.
Opt tests was put in the same test file to avoid duplication and maintenance burden.
In D52257#1241502, @SjoerdMeijer wrote:Ah, but looking a bit closer now, I am not sure this is the right thing to do. This changes makes any 8 bit value cheap, including negative numbers. And I am not sure if this is the right thing to do, since the Thumb1 immediates are positive numbers. It looks this a workaround for store-merging interacting badly with constant hoisting.
Cleaned up test case.
Sep 19 2018
ping...
ping...
Sep 18 2018
Sep 4 2018
Use std::stable_sort() as Eli suggested.
Aug 31 2018
Addressed Eli's comments.
Updated version reflects discussion with Eli.
Aug 29 2018
Unfortunately bitcast + gep + bitcast will only change the constant GEP expr from multi-dimension to single dimension, and it's still a constant pool entry after lowering.
Aug 28 2018
Aug 27 2018
Moved 'break;' under proper if statement.
Previous version mistakenly checks MinValItr->ConstInst rather than CC->ConstInst against StoreInst User's pointer operand.
Aug 24 2018
Updated as Eli suggested.
Aug 23 2018
ping...
Aug 21 2018
Updated test case as Eli suggested.
Aug 20 2018
ping?
Aug 17 2018
Apr 9 2018
committed as r329621, spelling errors fixed in r329230