- User Since
- Jan 3 2020, 4:17 AM (76 w, 4 d)
Mon, Jun 14
Rebase, add tests, and extract reshape logic into separate methods.
Sun, Jun 13
Mon, Jun 7
Create a single method to support both Tensor and MemRef operands.
Wed, Jun 2
Update a comment
Tue, Jun 1
Mon, May 31
Sun, May 30
Tue, May 25
Remove hoisting of allocas in non-loop cases.
May 21 2021
May 18 2021
May 11 2021
Respond to comments.
May 10 2021
May 7 2021
Change this patch to just a rename and expanded documentation.
May 6 2021
Apr 30 2021
I agree though that "Dependency" is a bad name. I'm just struggling to find a name to encode this concept of BufferViewFlowAnalysis.
Apr 29 2021
Describing what the code is intended to do (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/xla/tests/reverse_test.cc#L146).
; ModuleID = '__compute_module' source_filename = "__compute_module" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu"
Apr 28 2021
I'm reverting this due to test failures and emailing you a more in depth reproducer for the failures. It seems like you expected the possibility of failures, so I hope this is okay.
lebedev.ri's concerns seem to have been valid, so I'll be rolling this back. A test case in XLA that reverses data across certain dimensions in a multidimensional change fails with this patch. A sequence of loads and stores is converted into a single memcpy even though the ordering should be different across loads and stores.
Apr 23 2021
Apr 21 2021
A few places you checked that *.isa<ShapeType>() == *.isa<ShapeType>(). Out of curiosity, why not just compare the types?
Arc diff doesn't update the description, so FYI in case you didn't, update to mention the additional features you added.
Apr 20 2021
Update cmake file and remove friendliness between Analyses
I forwarded the DataLayout through several layers of functions. I started at the last point that the call sequence has the originating LinalgOp and passed it through as an additional argument rather than inside of any of the LinalgPromotionOption data structures. Please let me know what you think.
Forward DataLayout object to buffer allocation.
Apr 19 2021
It may not exist, it just sounds like a useful thing to have so I thought somebody could have added it. Feel free to have a local version or suggest one at Vector level. There's already VectorUnrollPattern that could be helpful.
Add test case to convert vectors to scalars.
Apr 16 2021
Apr 14 2021
Convert to StandardOpsDialect instead of LLVMDialect.
Rebase onto parent commit
Please let me know what you think of my interpretation of the default sizes for complex types.
Change complex DataLayout size computation to include alignment padding between elements.
Apr 13 2021
Apr 12 2021
Is this no longer needed?
Switch to using DataLayout.
Apr 9 2021
Apr 6 2021
Mar 23 2021
Mar 15 2021
Mar 10 2021
Add test case.
Respond to feedback.
Add a missing newline and remove an unneeded include.
Mar 3 2021
Feb 22 2021
Whoops. That's definitely a better choice than what I did.
Feb 18 2021
Feb 17 2021
Feb 16 2021
Feb 15 2021
Add message and tests for op verification failures
Feb 11 2021
Address code cleanup comments.
Feb 10 2021
Feb 9 2021
Replace naryBroadcast helper with only a single dim calculation.
Feb 8 2021
Removed binary broadcast case and updated tests accordingly.
Feb 5 2021
Update flang usages
Feb 4 2021
I'm going to wait on fixing the test until I hear your thoughts on the two options for lowering broadcast.
Fix variable names and adress other comments.
Feb 1 2021
Follow naming convention in new functions.
Jan 28 2021
Correct test case.
Correct constant name
Correct tests and fix comparison order.
Jan 27 2021
Jan 26 2021
I don't know if this works with whatever Shape Error types exist these days, so please let me know what you think.
Jan 25 2021
Abandoning for another change.
Jan 19 2021
I apologize, but I was not having any luck at creating a test case that wasn't constant folded away.
Jan 18 2021
I've been unable to create a reproducer because of other optimizations getting in the way, but I'm seeing a case of infinite loops in inst combine due to both CmpLHS and CmpRHS being constants.
Thanks for addressing the issues shchenz! I'm glad you figured out the use-of-uninitialized-value because that one confused me. I'm finishing my workday for the day, so I can rerun the patch tomorrow. Alternatively, all I know is that I had errors in my environment and that's what sanitizers showed, so you reproducing and fixing the issues is plenty I think.
I'm going to roll this back as it's causing build bot failures (in progress example here: http://220.127.116.11/win/31506/). Sanitizers show the following issues:
==9097==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x5628a1bd3d10 in llvm::PPCInstrInfo::getFMAPatterns(llvm::MachineInstr&, llvm::SmallVectorImpl<llvm::MachineCombinerPattern>&, bool) const third_party/llvm/llvm-project/llvm/lib/Target/PowerPC/PPCInstrIn fo.cpp:474:27 #1 0x5628a1bd7e6c in llvm::PPCInstrInfo::getMachineCombinerPatterns(llvm::MachineInstr&, llvm::SmallVectorImpl<llvm::MachineCombinerPattern>&, bool) const third_party/llvm/llvm-project/llvm/lib/Target/PowerP C/PPCInstrInfo.cpp:751:7 #2 0x5628a3291840 in combineInstructions third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp:593:15 #3 0x5628a3291840 in (anonymous namespace)::MachineCombiner::runOnMachineFunction(llvm::MachineFunction&) third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp:736:16 #4 0x5628a32f91a2 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:13 #5 0x5628a5e0dce7 in llvm::FPPassManager::runOnFunction(llvm::Function&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1439:27 #6 0x5628a5e22f60 in llvm::FPPassManager::runOnModule(llvm::Module&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1485:16 #7 0x5628a5e0f1d5 in runOnModule third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1554:27 #8 0x5628a5e0f1d5 in llvm::legacy::PassManagerImpl::run(llvm::Module&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:541:44 #9 0x56289f8dcb66 in compileModule(char**, llvm::LLVMContext&) third_party/llvm/llvm-project/llvm/tools/llc/llc.cpp:658:8
==1709==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7f155364a060 at pc 0x555a067755c4 bp 0x7fff9b909050 sp 0x7fff9b909048 READ of size 8 at 0x7f155364a060 thread T0 #0 0x555a067755c3 in operator third_party/crosstool/v18/stable/toolchain/bin/../include/c++/v1/vector:1550:18 #1 0x555a067755c3 in llvm::PPCInstrInfo::shouldReduceRegisterPressure(llvm::MachineBasicBlock*, llvm::RegisterClassInfo*) const third_party/llvm/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:655:10 #2 0x555a07df5618 in combineInstructions third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp:561:12 #3 0x555a07df5618 in (anonymous namespace)::MachineCombiner::runOnMachineFunction(llvm::MachineFunction&) third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp:736:16 #4 0x555a07e54479 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) third_party/llvm/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:13 #5 0x555a0b360710 in llvm::FPPassManager::runOnFunction(llvm::Function&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1439:27 #6 0x555a0b374470 in llvm::FPPassManager::runOnModule(llvm::Module&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1485:16 #7 0x555a0b3616e0 in runOnModule third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1554:27 #8 0x555a0b3616e0 in llvm::legacy::PassManagerImpl::run(llvm::Module&) third_party/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:541:44 #9 0x555a0461db8b in compileModule(char**, llvm::LLVMContext&) third_party/llvm/llvm-project/llvm/tools/llc/llc.cpp:658:8 #10 0x555a046183bf in main third_party/llvm/llvm-project/llvm/tools/llc/llc.cpp:363:22
Jan 15 2021
Another naming convention correction.