- User Since
- Mar 31 2020, 4:54 PM (9 w, 17 h)
Rebase and address comments.
Fri, May 29
duplicate existing diff
Thu, May 28
Don't mangle ParmVarDecl.
Wed, May 27
rebase and address comment.
Tue, May 26
@rsmith Are you okay with this patch?
Add 19.20 version. Only add mangled type for version 19. 20 or later to be abi-compatible with https://godbolt.org/z/Bhc__A
Mon, May 25
- Only add mangled type for auto template parameter, whose argument kind is Integral.
- MSVC mangled name has 1 more letter M before the mangled type, but I don't do it here because I think the M is from mangled qualifier and the function mangleQualifiers is incomplete yet.
Thu, May 21
update test case.
rename parameter uses to um
Wed, May 20
Check LambdaContextDecl is not ParamVarDecl.
Tue, May 19
Update test cases.
Remove check for context of LambdaContextDecl.
Update test cases.
Diagnose self-init warning if the self-init variable is used as const reference later.
Mon, May 18
Change some CHECK to CHECK-NEXT where the call to bar is first instruction in blocks.
Update comment for NoMerge flag
Fri, May 15
Since the new warning is controlled by -Wuninitialized, I disabled it in existing test case and added a separate test case for -Wuninitialized-const-reference.
Thu, May 14
Use another mapvector constRefUses to store uninitialized const reference uses so that the new warning can be easily disable by -Wno-initialized-const-reference
Add new warning as subgroup of Uninitialized.
Wed, May 13
Zero Initialize NoMerge in CallSiteDbgInfo.
Put Check in addNoMergeSiteInfo to avoid unnecessary hash table insertion.
Tue, May 12
Mon, May 11
Handle nomerge flag in LowerCall at targets AArch64, ARM, PowerPC, RISCV, and add test cases for each target.
Fri, May 8
add nomerge case in CodeExtractor.cpp
use ConstEvaluatedExprVisitor to recursively looking up for call expr
use ConstStmtVisitor to do recursive lookup for call expression.
Wed, May 6
Tue, May 5
Mon, May 4
To keep it simple, nomerge attribute should not be applied to decl statement. Since label statement calls ProcessDeclAttributeList to handle attributes, label statement should not have nomerge attribute.
May 3 2020
Add Sema test.
Check if nomerge attribute has no arguments and statement contains call expressions.
Apr 30 2020
change nomerge to statement attribute
Apr 29 2020
Apr 28 2020
Add test case for preventing hoisting.
Does sinking and hoisting remove the debug source location? I assumed that it wouldn't, but now after all the smooth stepping work, maybe it does.
Yes, both sinking and hoisting in simplifycfg remove the debug source location by Instruction::applyMergedLocation
Apr 27 2020
Split the the original differential to 2 smaller ones. This one add nomerge function attribute in IR level. Another one will add the attribute to let frontend recognize it.
Apr 24 2020
Add check in LICM to prevent sink or hoist on nomerge call