Page MenuHomePhabricator

johannes (Johannes Altmanninger)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 31 2017, 3:22 AM (106 w, 6 d)

Recent Activity

Aug 27 2018

johannes added a comment to D34329: [clang-diff] Initial implementation..

@arphaman @johannes Is that normal that clang-diff isn't installed by cmake? (like clang-format?)

Aug 27 2018, 6:36 AM

Apr 14 2018

johannes removed a reviewer for D45637: [DebugInfo] Ignore DBG_VALUE instructions in PostRA Machine Sink: johannes.
Apr 14 2018, 6:03 AM · debug-info

Dec 27 2017

johannes updated the diff for D40782: [tablegen] Replace strconcat, listconcat by concat.

use generic concat

Dec 27 2017, 2:51 AM

Dec 20 2017

johannes added a comment to D40782: [tablegen] Replace strconcat, listconcat by concat.

I use a different approach now, WDYT?

I'm not sure I like this. Before it was clear: !strconcat is for strings, !codeconcat was for code. Having !strconcat also work on code, and return something which isn't a string, seems unfortunate. And we also have !listconcat. If we want to unify things, I think it would make sense to add !concat (which works on all of those things). [If you do this, then also support !strconcat and !listconcat as aliases to be nice to out-of-tree backends].

Dec 20 2017, 7:31 AM

Dec 18 2017

johannes added a comment to D40782: [tablegen] Replace strconcat, listconcat by concat.

I use a different approach now, WDYT?

Dec 18 2017, 12:57 AM
johannes retitled D40782: [tablegen] Replace strconcat, listconcat by concat from [tablegen] Add !codeconcat operator which works like !strconcat to [tablegen] Make strconcat return code if all arguments are code.
Dec 18 2017, 12:57 AM
johannes updated the diff for D40782: [tablegen] Replace strconcat, listconcat by concat.

remove codeconcat, make strconcat return code if all arguments are

Dec 18 2017, 12:55 AM

Dec 12 2017

johannes updated the diff for D40782: [tablegen] Replace strconcat, listconcat by concat.

add documentation + test

Dec 12 2017, 5:56 AM

Dec 4 2017

johannes added a comment to D40731: Integrate CHash into CLang.

For my changes to StmtDataCollectors: I tried to leave the already existing entries in StmtDataCollector.td untouched and the test-cases still work OK. If there is something somebody could break by changing these files it would be good to have a test case for it.

Dec 4 2017, 6:43 AM
johannes updated subscribers of D40731: Integrate CHash into CLang.
Dec 4 2017, 6:24 AM
johannes added a comment to D40731: Integrate CHash into CLang.

So you can define a category for cHash and add let cHash = [{ .. }] or let cHash = TypeIIClone; if you just want to reuse it.
With this patch you can also use !codeconcat to append some code: https://reviews.llvm.org/D40782

Dec 4 2017, 6:13 AM
johannes updated the diff for D40782: [tablegen] Replace strconcat, listconcat by concat.

adhere to the column limit

Dec 4 2017, 6:10 AM
johannes created D40782: [tablegen] Replace strconcat, listconcat by concat.
Dec 4 2017, 6:07 AM
johannes added a comment to D40731: Integrate CHash into CLang.

I think it would be quite nice if we manage to consolidate the implementation of hashing mechanisms.

Dec 4 2017, 5:54 AM
johannes created D40781: [DataCollection] Allow choosing between collection categories.
Dec 4 2017, 5:28 AM

Nov 5 2017

johannes created D39664: [clang-diff] patching: implement updates.
Nov 5 2017, 12:00 PM
johannes created D39663: [clang-diff] Split source ranges at points where nodes are inserted..
Nov 5 2017, 11:55 AM
johannes updated the summary of D37005: [clang-diff] Initial implementation of patching.
Nov 5 2017, 11:54 AM
johannes updated the diff for D37005: [clang-diff] Initial implementation of patching.

update

Nov 5 2017, 11:53 AM
johannes created D39662: [clang-diff] Enable postorder traversal.
Nov 5 2017, 11:49 AM
johannes created D39661: [clang-diff] Move printing of changes to the ASTDiff library.
Nov 5 2017, 11:48 AM
johannes created D39660: [clang-diff] Don't ignore nodes from other files.
Nov 5 2017, 11:46 AM
johannes created D39659: [clang-diff] Store changes within ASTDiff::Impl.
Nov 5 2017, 11:45 AM
johannes created D39658: [clang-diff] Treat QualType / TypeLoc as a node.
Nov 5 2017, 11:44 AM
johannes updated the diff for D37003: [clang-diff] Support templates.

update

Nov 5 2017, 11:22 AM
johannes updated the diff for D36688: [clang-diff] Fix matching for unnamed NamedDecs.

update

Nov 5 2017, 11:22 AM
johannes created D39656: [clang-diff] Remove getNodeValue.
Nov 5 2017, 11:21 AM
johannes updated the diff for D37001: [clang-diff] Use data collectors for node comparison.

use raw source code of owned tokens instead

Nov 5 2017, 11:20 AM
johannes created D39655: [clang-diff] Expose Node::getSourceRange().
Nov 5 2017, 11:14 AM
johannes abandoned D39654: [clang-diff] Expose Node::getSourceRange().
Nov 5 2017, 11:11 AM
johannes created D39654: [clang-diff] Expose Node::getSourceRange().
Nov 5 2017, 11:10 AM
johannes created D39653: [clang-diff] Add utility functions, forbid copying Node.
Nov 5 2017, 11:07 AM
johannes updated the diff for D36997: [clang-diff] Honor macros.

update

Nov 5 2017, 11:05 AM
johannes updated the diff for D36687: [clang-diff] Match nodes with the same parent and same value.

update

Nov 5 2017, 11:04 AM
johannes created D39652: [clang-diff] NFC: factor out getCompilationDatabase().
Nov 5 2017, 11:03 AM
johannes created D39651: [clang-diff] NFC: renames, moves.
Nov 5 2017, 11:02 AM
johannes created D39650: [clang-diff] Make getSourceRangeOffsets a member of Node.
Nov 5 2017, 11:00 AM
johannes created D39649: [clang-diff] Split findPositionInParent.
Nov 5 2017, 10:59 AM
johannes created D39648: [clang-diff] NFC: organise header.
Nov 5 2017, 10:57 AM
johannes created D39647: [clang-diff] NFC: remove Mapping.
Nov 5 2017, 10:56 AM
johannes created D39646: [clang-diff] Rename ChangeKind::None to NoChange.
Nov 5 2017, 10:55 AM
johannes created D39645: [clang-diff] NFC: replace const Node & with a typedef'd NodeRef.
Nov 5 2017, 10:54 AM
johannes created D39644: [clang-diff] Use references to Node instead of NodeId.
Nov 5 2017, 10:51 AM

Sep 13 2017

johannes added inline comments to D37663: [AST] Make RecursiveASTVisitor visit CXXOperatorCallExpr in source order.
Sep 13 2017, 5:58 AM
johannes updated the diff for D37663: [AST] Make RecursiveASTVisitor visit CXXOperatorCallExpr in source order.

use CXXOperatorCallExpr::isPrefixOp() to determine whether it's infix or postfix
directly traverse statement children instead of copying

Sep 13 2017, 5:56 AM

Sep 11 2017

johannes added inline comments to D37663: [AST] Make RecursiveASTVisitor visit CXXOperatorCallExpr in source order.
Sep 11 2017, 7:02 AM

Sep 9 2017

johannes created D37663: [AST] Make RecursiveASTVisitor visit CXXOperatorCallExpr in source order.
Sep 9 2017, 3:46 AM
johannes created D37662: [AST] Make RecursiveASTVisitor visit TemplateDecls in source order.
Sep 9 2017, 3:46 AM

Sep 6 2017

johannes added a comment to D37383: [AST] Add TableGen for StmtDataCollectors.

@teemperor ok for you? did phabricator make you a blocking reviewer because of the affected code, or did I do that somehow?

Sep 6 2017, 6:07 AM

Sep 1 2017

johannes updated the diff for D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.

undo visibility change

Sep 1 2017, 12:52 PM
johannes added a comment to D37383: [AST] Add TableGen for StmtDataCollectors.

@arphaman I suggested tablegen in D36664 because I remembered we had some CMake sanity check about not having an *.inc in our include dir: https://github.com/llvm-mirror/clang/blob/master/CMakeLists.txt#L266 Not sure if it actually fires for our case, but it looks like it does.

Sep 1 2017, 12:49 PM
johannes created D37383: [AST] Add TableGen for StmtDataCollectors.
Sep 1 2017, 9:22 AM
johannes updated the diff for D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.

fix by adding an option in RecursiveASTVisitor

Sep 1 2017, 9:22 AM
johannes added inline comments to D37001: [clang-diff] Use data collectors for node comparison.
Sep 1 2017, 12:28 AM

Aug 29 2017

johannes added inline comments to D37005: [clang-diff] Initial implementation of patching.
Aug 29 2017, 6:23 AM
johannes updated the diff for D37005: [clang-diff] Initial implementation of patching.

fixes

Aug 29 2017, 6:22 AM
johannes added a comment to D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.

This is currently broken, if a user provides a TraverseClassTemplateDecl, then the same method in this class will not be called, I think I will add a flag (probably not user visible) in RecursiveASTVisitor.h to switch the order for templates

Aug 29 2017, 5:56 AM

Aug 28 2017

johannes added a comment to D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

Yeah, this seems to be the best solution for this. I think I ran into the same issue when working on the StmtDataCollector - basically there can only be two Traverse*, one in the Derived class and the other one needs to do all the magic with walking the specialisation hierarchy.

Aug 28 2017, 1:36 PM
johannes updated the diff for D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

use a specialized getStmtChildren to fix the order for CXXOperatorCallExpr

Aug 28 2017, 1:29 PM
johannes updated the diff for D37005: [clang-diff] Initial implementation of patching.

split to ASTDiff/ASTPatch

Aug 28 2017, 11:42 AM
johannes updated the diff for D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

detect prefix/postfix from number of arguments

Aug 28 2017, 6:49 AM
johannes added a comment to D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

The previous version didn't call TraverseDecl of the derived class, this is fixed now.
The public getDerived.TraverseStmt() does not accept a DataRecursionQueue, so this also could not be used (I think)
I used the wrapper TraverseStmtBase, which should behave exactly as the method that originally traverses CXXOperatorCallExpr

Aug 28 2017, 6:24 AM
johannes updated the diff for D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

do call derived TraverseStmt for children of CXXOperatorCallExpr

Aug 28 2017, 6:19 AM
johannes updated the diff for D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.

use RecursiveASTVisitor::TraverseStmt

Aug 28 2017, 5:01 AM
johannes added inline comments to D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.
Aug 28 2017, 4:04 AM

Aug 27 2017

johannes updated the diff for D37005: [clang-diff] Initial implementation of patching.

use rewriter to patch a third AST

Aug 27 2017, 4:02 PM
johannes created D37201: [clang-diff] Use correct SourceRange for CXXConstructExpr.
Aug 27 2017, 3:58 PM
johannes created D37200: [AST] Traverse CXXOperatorCallExpr in LexicallyOrderedRecursiveASTVisitor.
Aug 27 2017, 3:57 PM
johannes closed D36187: [clang-diff] Use the relative name for NamedDecls.
Aug 27 2017, 3:53 PM

Aug 25 2017

johannes updated the diff for D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.

test ordering, class template

Aug 25 2017, 10:06 AM
johannes added inline comments to D37004: [clang-diff] Fix the html output for CXXOperatorCallExpr.
Aug 25 2017, 8:39 AM
johannes added a comment to D37001: [clang-diff] Use data collectors for node comparison.

Can you remove getNodeValue now or do you still need it?

Aug 25 2017, 7:56 AM
johannes updated the diff for D37003: [clang-diff] Support templates.

use LexicallyOrderedRecursiveASTVisitor

Aug 25 2017, 3:03 AM
johannes updated the diff for D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.

use LexicallyOrderedRecursiveASTVisitor

Aug 25 2017, 2:56 AM
johannes added inline comments to D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.
Aug 25 2017, 2:56 AM

Aug 23 2017

johannes updated the diff for D37004: [clang-diff] Fix the html output for CXXOperatorCallExpr.

provide a test
need to update the maxsize parameter to -s=200 here because the test file is
expected to fit within this size

Aug 23 2017, 12:02 PM
johannes created D37072: [clang-diff] Properly clear the selection in HTML diff.
Aug 23 2017, 9:34 AM

Aug 22 2017

johannes added a comment to D36989: [clang-diff] Refactor stop-after command-line flag.

If you have more stop-after options it'd probably be simpler to leave it as one field. I'll just rename it to "stop-diff-after" to avoid the name collision.

Aug 22 2017, 10:13 AM
johannes created D37005: [clang-diff] Initial implementation of patching.
Aug 22 2017, 2:17 AM
johannes created D37004: [clang-diff] Fix the html output for CXXOperatorCallExpr.
Aug 22 2017, 2:17 AM
johannes created D37003: [clang-diff] Support templates.
Aug 22 2017, 2:16 AM
johannes created D37002: [clang-diff] Treat CXXCtorInitializer as a node.
Aug 22 2017, 2:16 AM
johannes created D37001: [clang-diff] Use data collectors for node comparison.
Aug 22 2017, 2:15 AM
johannes created D37000: [clang-diff] Remove NodeCountVisitor, NFC.
Aug 22 2017, 2:15 AM
johannes created D36999: [AST] Add DeclDataCollectors.inc.
Aug 22 2017, 2:14 AM
johannes created D36998: [AST] Traverse templates in LexicallyOrderedRecursiveASTVisitor.
Aug 22 2017, 2:09 AM
johannes created D36997: [clang-diff] Honor macros.
Aug 22 2017, 2:05 AM
johannes updated the diff for D36686: [clang-diff] Add option to compare files across git revisions.

casing

Aug 22 2017, 2:02 AM
johannes updated the diff for D36685: [clang-diff] HTML diff navigation.

some refactoring

Aug 22 2017, 2:02 AM
johannes requested changes to D36989: [clang-diff] Refactor stop-after command-line flag.

Oh wait I get linker errors with BUILD_SHARED_LIBS=1

Aug 22 2017, 1:49 AM
johannes accepted D36989: [clang-diff] Refactor stop-after command-line flag.

Looks good, thanks!
You can remove StopAfterTopDown from the ComparisonOptions struct definition

Aug 22 2017, 1:40 AM

Aug 20 2017

johannes closed D35948: [CommonOptionsParser] Expose ArgumentsAdjustingCompilationDatabase.
Aug 20 2017, 9:28 AM
johannes accepted D35948: [CommonOptionsParser] Expose ArgumentsAdjustingCompilationDatabase.

This has already landed.

Aug 20 2017, 9:28 AM

Aug 18 2017

johannes added inline comments to D36187: [clang-diff] Use the relative name for NamedDecls.
Aug 18 2017, 10:04 AM
johannes updated the diff for D36187: [clang-diff] Use the relative name for NamedDecls.

only use Enums as namespace prefix in C++11

Aug 18 2017, 10:04 AM

Aug 16 2017

johannes updated the diff for D36686: [clang-diff] Add option to compare files across git revisions.

accept a commit range

Aug 16 2017, 5:24 AM
johannes added a comment to D36664: [analyzer] Make StmtDataCollector customizable.

Very well done, I really like this patch! I added a few remarks mostly about the comments that need some small adjusting.

I'm wondering what would be a nice way of creating a StmtDataCollector that is faster but only works for single translation units (e.g. it only hashes the pointer values of decls instead of their qualified name)? The use case here would be Stmt::Profile and the CloneDetector which could be set to a single-TU-mode in the CloneChecker. For Stmt::Profile it would ensure we don't degrade performance from the current version, for the CloneChecker we probably get a reasonable performance boost (as the hashing is currently the last remaining bottle neck).

@arphaman Any suggestions who could review/approve the additions to AST/?

Aug 16 2017, 1:10 AM
johannes updated the diff for D36664: [analyzer] Make StmtDataCollector customizable.

add

Aug 16 2017, 1:05 AM
johannes updated the diff for D36664: [analyzer] Make StmtDataCollector customizable.
  • fix comments
  • add unittest for the new node kinds
  • make addData() take a const reference
Aug 16 2017, 1:02 AM

Aug 14 2017

johannes added a comment to D36686: [clang-diff] Add option to compare files across git revisions.

It might be useful to have both source and destination in a different revision. Maybe something like -src-git-rev and -dst-git-rev?

Aug 14 2017, 12:07 PM