- User Since
- Nov 26 2018, 10:02 PM (105 w, 22 h)
Aug 26 2020
Aug 19 2020
Fix the unpassed tests.
Only split the constant when it would cause the one more move instruction.
Aug 18 2020
Fix variable style && Only handle ISD:ADD for Address.
The "Address" operand supports more than one use.
Jul 13 2020
Yep - sure, the test case should not be included. (I don't think I can actually approve a specific prior revision of the patch in Phab) - are you able to commit the initialization or would you like me to?
I think I should not attach this test case then.
You should not accept this patch. Instead you should accept the previous one.
Valgrind won't work in the Windows environment.
Jul 9 2020
- bool SameAsPrevCU = this == DD->getPrevCU();
+ const DwarfCompileUnit *PrevCU = DD->getPrevCU();
Jun 20 2020
Any ideas why my attempt to reproduce the issue with valgrind might not have worked as it has for you?
Jun 19 2020
I think memory sanitizer is buggy...
use libc++ but the same error emitted!
Jun 18 2020
The bug from libstdc++, switching to libc++.
Then the memory sanitizer finds another bug when compiling:
2397==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0xb210e7 in llvm::StringRef::find(char, unsigned long) const /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../include/llvm/ADT/StringRef.h:322:29 #1 0xb210e7 in llvm::StringRef::split(llvm::SmallVectorImpl<llvm::StringRef>&, char, int, bool) const /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../lib/Support/StringRef.cpp:344:20 #2 0xb2b6d4 in llvm::Triple::Triple(llvm::Twine const&) /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../lib/Support/Triple.cpp:739:19 #3 0xb63b3c in llvm::sys::getProcessTriple[abi:cxx11]() /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../lib/Support/Host.cpp:1615:10 #4 0xadecab in (anonymous namespace)::CommandLineParser::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, bool) /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../lib/Support/CommandLine.cpp:1347:17 #5 0xadecab in llvm::cl::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, char const*, bool) /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../lib/Support/CommandLine.cpp:1322:24 #6 0xa90283 in main /home/linzj/ssdsrc/llvm-project2/llvm/building-release/../utils/TableGen/TableGen.cpp:265:3 #7 0x7fc23a9d4b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 #8 0x426c69 in _start (/media/linzj/ff6fd1aa-94f2-4f61-9aba-67c6c99a0a59/home/linzj/src/llvm-project2/llvm/building-release/bin/llvm-tblgen+0x426c69)
I think I have used to wrong sanitizer. Should be "Memory", not "Undefined".
I can't reproduce the bug with ubsan! Even in the latest version.
But valgrind is able to reproduce it.
Oh - hmm. I don't seem to reproduce this myself with "clang++ ^.cc -g -c -O3" running under valgrind. Is there something else I should be doing to reproduce/validate this?
It should add -target armv7-linux-android. Or you should simply run llc with my test case.
Jun 15 2020
Which platform did you run valgrind on? The x86 platform should set SubIdx on all paths through it...
I think SubIdx is supposed to be set by TII->isCoalescableExtInstr(). If it's not doing that, then the error's probably in that call and not in this function.
Then most target instr infos need to patch.
I am not a commiter, please commit this patch for me.
Jun 11 2020
Jun 10 2020
Mar 5 2020
@arsenm , looks good to you?
Mar 3 2020
I think it's fine to go back to the main stream.
Mar 2 2020
Rebase again. I don't think the failed unit test is relevant to my change.
Fix test case miss RUN comment.
Mar 1 2020
Rebase from the master.
Feb 26 2020
When the commit will be landed?
Nov 11 2019
Yes. They are argument values.
But they are CSRs in the ShrinkWrap context. For example, If a JS function use/def r1 in the a basic block but ShrinkWrap move the save block to one of its successor, that will be a trouble.
I think ShrinkWrap pass is the wrong place to solve this problem. Could you, please, look at the how the registers, which correspond to vararg arguments of a variadic function are saved to
designated slots on the stack (check all mentions of ArgRegsSaveSize in ARMFrameLowering.cpp)? Perhaps you could do something similar?
Sep 18 2019
Sep 17 2019
Not that simple. Your solution just handles the call instructions. The the prologue is inserted by the prologue inserter. I can't simply add a prologue to a function's MIR script, right?
Sep 15 2019
You need to clone https://github.com/linzj/llvm-toy, then checkout the branch named arm-tf-6_9_427_23. Then apply the patch llvm-patch-by-far.patch to llvm 8.0. So that you can compile the test case as follow. Because of a new calling convention v8cc.
the test case:
; ModuleID = 'main' source_filename = "main" target triple = "armv7-unknown-unknown-v8"
Sep 6 2019
Sep 5 2019
Remove an unused function.
Remove an unused include file.
Sep 4 2019
Use undef SDValue instead.
Sep 2 2019
I think the ConstantHoist have its job well done, maybe reload a constant from a stack slot is a good idea.
Aug 21 2019
Aug 20 2019
Aug 19 2019
Nov 26 2018
This patch pass the test:
; ModuleID = 'test' source_filename = "test" target triple = "armv7-linux-android"