- User Since
- Jul 30 2013, 7:58 PM (194 w, 4 d)
Fri, Apr 21
Address Simon's comment.
Thu, Apr 20
Just use tcCompare to implement the slow case compare code.
I still need to look at this some more, but here a few comments.
BitVector's word size is dependent on target as it is using "unsigned long" not uint32_t/uint64_t. tcShiftRight is hardcoded to uint64_t though we could probably make it a template.
In the days before the MC layer of LLVM existed, clang would output assembly as text and feed it to the separate assembler tool. So it had to output what the MacOS assembler could parse.
Wed, Apr 19
Oops. didn't notice this was closed already. But can we run the script over the test now?
This wasn't a mistake. We have aliases for movq for this instruction already. This was for compatibility with MacOS/Darwin's old assembler from the pre-clang days.
Tue, Apr 18
Dont' return *this by reference from lshrInPlace
I'll remove the return reference.
Mon, Apr 17
Update comments and variable names. Add some basic tests.
I want to look at left shift at some point. Also making an in place version of ashr as well. lshrInPlace was just added last week which is why I focused on it.
Adding a few others who have been involved or reviewed APInt patch changes recently.
Use APInt::isSignBitSet instead of isNegative
Sun, Apr 16
Fix diff context
Fix diff context
Sat, Apr 15
Is this related to this bit from the Intel Optimization Manual.
Fri, Apr 14
Thu, Apr 13
They aren't serialized. They belong to the CodeGen implementation. IR doesn't use these.
Turns out MSVC has different packing than gcc/clang. So APSInt doesn't use the padding from APInt for storage. So the static_assert failed on windows.
Wed, Apr 12
I guess I didn't submit the comment. Should be there now.
Thanks for using WordType. At some point I'll continue my cleanup of APInt and use that everwhere.
I wonder if you should just call ConstantFoldInstOperands where we currently call ConstantExpr::getElementPtr? I think that will try to constant fold it before falling back to ConstantExpr::getElementPtr.
What is the plan for supporting the SSE intrinsics?
Tue, Apr 11
Can we just merge lshrNear fully into lshrInPlace and just use lshrInPlace in the other place that uses lshrNear?
Did we really not have tests for the avx512 and sse41 versions?
Mon, Apr 10
Evan Cheng added this in r94147 at that time there was an additional check on the index register itself too. This is what the "Index should be Reg0" comment was referring too, but I don't know what that means. Its before my time. Jakob Stoklund Olesen removed that check in r100497, but did not update the comment about Reg0.
@chandlerc do you know of other tests that check this sort of thing or can you give more guidance. I haven't spent a lot of time in the IR optimizers until recently.
I can certainly try. What exactly were you envisioning?
Fri, Apr 7
Thu, Apr 6
Wed, Apr 5
Add additional comments.
Addressed Simon's comment.
Are you planning to put ARPL, LAR, VERR, VERW, SLDT, LLDT and many others here in the automated tables?
Tue, Apr 4
Agreed. I'll do that.
Reduced to just the logic operations. Updated tests to include phis
I had to revert the commit of this due to a tsan check failure. it looks like this optimization does fire sometimes because it's mising a qualification to make sure the add or sub is only has one user. So we can create an add or sub without replacing the existing one.
Mon, Apr 3
Sun, Apr 2
I think the first version of this was added in r23379 in 2005, but there's no test case changes in that commit, but one is mentioned by name in the commit message. That test appears to be test29 in test/Transforms/InstCombine/add.ll that was added in the commit previous to that. That test case still exists today.