In D155049#4651572, @jdoerfert wrote:In D155049#4651546, @fmayer wrote:In D155049#4651545, @fmayer wrote:In D155049#4651544, @jdoerfert wrote:In D155049#4651543, @fmayer wrote:In D155049#4651542, @vitalybuka wrote:How this is going to affect sanitizers? We still want them being able to detect overflows.
more context: sanitizers use SCEV to decide to not instrument accesses where SCEV tells us that they are in range. With features like this that exploit UB in SCEV, we can no longer rely on this, because the whole point of the sanitizer is to catch UB.
SCEV (and other helpers) already refine UB, don't they? That said, you can disable the feature, right now via a command line flag. That said, we probably want a "catch all" try not to exploit UB flag.
Thanks! Yes such a catch all would be great. Just confirming I understand the CL correctly (I didn't actually read all of the code). If I take the loop from the discourse
int square(int num) { int A[3]; for (int i = 0; i < num; ++i) A[i] = i * num; return A[1] + A[2]; }SCEV would tell me that 0 <= i < 3 is true?
And also num < 3?
Yes, or at least the loop count is bound by 3. Which should be enough for the unroller to get going.
We can check for attributes, is there a helper that encapsulates all the specific attribute names?
Please use GitHub pull requests for new patches. Phabricator shutdown timeline
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Wed, Sep 27
In D155049#4651545, @fmayer wrote:In D155049#4651544, @jdoerfert wrote:In D155049#4651543, @fmayer wrote:In D155049#4651542, @vitalybuka wrote:How this is going to affect sanitizers? We still want them being able to detect overflows.
more context: sanitizers use SCEV to decide to not instrument accesses where SCEV tells us that they are in range. With features like this that exploit UB in SCEV, we can no longer rely on this, because the whole point of the sanitizer is to catch UB.
SCEV (and other helpers) already refine UB, don't they? That said, you can disable the feature, right now via a command line flag. That said, we probably want a "catch all" try not to exploit UB flag.
Thanks! Yes such a catch all would be great. Just confirming I understand the CL correctly (I didn't actually read all of the code). If I take the loop from the discourse
int square(int num) { int A[3]; for (int i = 0; i < num; ++i) A[i] = i * num; return A[1] + A[2]; }SCEV would tell me that 0 <= i < 3 is true?
In D155049#4651544, @jdoerfert wrote:In D155049#4651543, @fmayer wrote:In D155049#4651542, @vitalybuka wrote:How this is going to affect sanitizers? We still want them being able to detect overflows.
more context: sanitizers use SCEV to decide to not instrument accesses where SCEV tells us that they are in range. With features like this that exploit UB in SCEV, we can no longer rely on this, because the whole point of the sanitizer is to catch UB.
SCEV (and other helpers) already refine UB, don't they? That said, you can disable the feature, right now via a command line flag. That said, we probably want a "catch all" try not to exploit UB flag.
In D155049#4651542, @vitalybuka wrote:How this is going to affect sanitizers? We still want them being able to detect overflows.
Fri, Sep 8
Wed, Sep 6
Aug 31 2023
upd
simplify
Aug 30 2023
Aug 29 2023
Aug 22 2023
In D157102#4560976, @Chia-hungDuan wrote:Add @fmayer to be aware of the name change
Aug 16 2023
I think this might have caused https://github.com/llvm/llvm-project/issues/64730
Aug 9 2023
Aug 7 2023
Aug 4 2023
I think this broke many of our sanitizer tests: https://lab.llvm.org/buildbot/#/builders/37/builds/24122/steps/24/logs/stdio
Jul 26 2023
Also nit: typo in commit message.
Jul 25 2023
remove redundant test RUN
In D156267#4533704, @vitalybuka wrote:You may add this into llvm/docs/ReleaseNotes.rst
You probably should remove -mllvm -hwasan-use-after-scope from tests (followup patch is find, after waiting few weeks this one not reverted)
update tests
fix halt-on-error
Jul 12 2023
Jun 14 2023
Jun 7 2023
In D152316#4404486, @fmayer wrote:In D152316#4404455, @aeubanks wrote:In D152316#4401551, @fmayer wrote:I don't think we want to disable HWASan tests on Linux generally. If a test has problems on x86, we should either fix that or disable that test only.
We also have an arm64 Linux buildbot, which we definitely don't want to disable.
makes sense, but is the arm64 linux bot actually running the hwasan tests, or are they all disabled currently?
It is actually running them.
there were a lot of hwasan tests failing on linux x64 (>40), is that expected?
That is unexpected.
% ninja -C build check-hwasan ninja: Entering directory `build' [0/1] Running the HWAddressSanitizer tests
In D152316#4404455, @aeubanks wrote:In D152316#4401551, @fmayer wrote:I don't think we want to disable HWASan tests on Linux generally. If a test has problems on x86, we should either fix that or disable that test only.
We also have an arm64 Linux buildbot, which we definitely don't want to disable.
makes sense, but is the arm64 linux bot actually running the hwasan tests, or are they all disabled currently?
It is actually running them.
there were a lot of hwasan tests failing on linux x64 (>40), is that expected?
That is unexpected.
In D149162#4404271, @agozillon wrote:I have hopefully fixed the sanitizer issue (the incorrect assert, thank you again for the catch) with the following patch: https://github.com/llvm/llvm-project/commit/309023263dba3b02bc885101faa47d110f662f99 it was a slightly more involved change than I expected, I had to rework the getTargetEntryUniqueInfo function to use a callback function to support Clang's use of a fallback filename and line number (gathered from a PresumedLoc). So I apologies for the extended time to land the change.
This triggered an MSAN error: https://lab.llvm.org/buildbot/#/builders/237/builds/3127/steps/13/logs/stdio
Jun 6 2023
Seems like I made matters worse. Un-reverting this. Please fix the UBSAan error.
/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:214:43: runtime error: signed integer overflow: 9223372034904144827 - -1950630981 cannot be represented in type 'int64_t' (aka 'long') #0 0xaaaae4525208 in selectImm(llvm::SelectionDAG*, llvm::SDLoc const&, llvm::MVT, long, llvm::RISCVSubtarget const&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:214:43 #1 0xaaaae451fff8 in llvm::RISCVDAGToDAGISel::Select(llvm::SDNode*) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:863:23 #2 0xaaaae6204148 in llvm::SelectionDAGISel::DoInstructionSelection() /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1178:7 #3 0xaaaae6202418 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:949:5 #4 0xaaaae61feb54 in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1700:7 #5 0xaaaae61fa77c in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:482:3 #6 0xaaaae5469750 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:13 #7 0xaaaae5b2acf0 in llvm::FPPassManager::runOnFunction(llvm::Function&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:27 #8 0xaaaae5b34fd0 in llvm::FPPassManager::runOnModule(llvm::Module&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:16 #9 0xaaaae5b2b7f0 in runOnModule /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:27 #10 0xaaaae5b2b7f0 in llvm::legacy::PassManagerImpl::run(llvm::Module&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:44 #11 0xaaaae31ae314 in compileModule(char**, llvm::LLVMContext&) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/tools/llc/llc.cpp:756:8 #12 0xaaaae31ac0b8 in main /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/tools/llc/llc.cpp:420:22 #13 0xffffbb03777c (/lib/aarch64-linux-gnu/libc.so.6+0x2777c) (BuildId: fe1fc959438108d405a33383d7c3f00762a5bb93) #14 0xffffbb037854 in __libc_start_main (/lib/aarch64-linux-gnu/libc.so.6+0x27854) (BuildId: fe1fc959438108d405a33383d7c3f00762a5bb93) #15 0xaaaae3180fec in _start (/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/bin/llc+0x5e90fec) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:214:43 in
I think this broke sanitizer tests: https://lab.llvm.org/buildbot/#/builders/238/builds/3867/steps/13/logs/stdio
In D150298#4401580, @thakis wrote:Could this have broken check-hwasan? http://45.33.8.238/linux/109046/step_10.txt
I don't think we want to disable HWASan tests on Linux generally. If a test has problems on x86, we should either fix that or disable that test only.
I still don't like the inconsistency between platforms, and I don't think a few bytes of repeated build id matter, but fine.
Seems like the check_memcpy.c is broken: https://lab.llvm.org/buildbot/#/builders/37/builds/22633/steps/2/logs/stdio
Jun 5 2023
iwyu
fix bug around tls
In D152036#4396207, @fmayer wrote:In D152036#4394711, @kda wrote:This looks to be breaking HWASAN sanitizer buildbot:
https://lab.llvm.org/buildbot/#/builders/236/builds/4452seems to be try-catch.cpp
thinks. looking, i cannot reproduce on my own phone :(