Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline

grandinj (Noel Grandin)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 24 2016, 1:20 AM (388 w, 6 d)

Recent Activity

Apr 17 2023

grandinj added a comment to D148478: [libc++][PSTL] Add design docs.

(a) the unabbreviated form of PSTL

This is a bit ambiguous. Do you mean "Parallel STL"? If yes, I'm not sure it results in less confusion, since it's mostly referred to as the PSTL. The subdirectory is also called pstl.

Apr 17 2023, 11:37 PM · Restricted Project, Restricted Project
grandinj added a comment to D148593: [InstCombine] Add transforms for `(icmp eq/ne (trunc x),(truncOrZext(y)))`->`(icmp eq/ne x,y)`.

I think the third line in the commit message should be

Apr 17 2023, 11:35 PM · Restricted Project, Restricted Project

Apr 16 2023

grandinj added a comment to D148478: [libc++][PSTL] Add design docs.

Would be nice to include

Apr 16 2023, 11:40 PM · Restricted Project, Restricted Project

Apr 13 2023

grandinj added inline comments to D148281: [lsan] Don't crash on ThreadRegistry::threads_ data race.
Apr 13 2023, 11:05 PM · Restricted Project, Restricted Project

Jun 19 2022

grandinj added inline comments to D128093: [lld-macho] Initial support for Linker Optimization Hints.
Jun 19 2022, 11:03 AM · Restricted Project, Restricted Project, Restricted Project
grandinj added inline comments to D128093: [lld-macho] Initial support for Linker Optimization Hints.
Jun 19 2022, 5:02 AM · Restricted Project, Restricted Project, Restricted Project

May 19 2022

grandinj added inline comments to D126040: [InstCombine] Fold a mul with bool value into and.
May 19 2022, 11:39 PM · Restricted Project, Restricted Project

Apr 18 2022

grandinj added a comment to D119136: [clang] Implement Change scope of lambda trailing-return-type.

thanks for the quick response

Apr 18 2022, 7:35 AM · Restricted Project, Restricted Project

Apr 16 2022

grandinj added a comment to D119136: [clang] Implement Change scope of lambda trailing-return-type.

I note that building on Ubuntu, I am now seeing failures like:

Apr 16 2022, 9:44 AM · Restricted Project, Restricted Project

Feb 2 2022

grandinj added a comment to D118690: [analyzer] Prevent misuses of -analyze-function.

Nice quality-of-life improvement!

Feb 2 2022, 12:03 AM · Restricted Project

Dec 24 2021

grandinj added inline comments to D116249: Demo fix for performance-move-const-arg (WIP).
Dec 24 2021, 4:20 AM · Restricted Project

Aug 25 2021

grandinj added inline comments to D108690: Explicit approach to controlling symbol visibility.
Aug 25 2021, 2:17 AM · Restricted Project

Jun 14 2021

grandinj added a comment to D104200: [lld-macho][nfc] Add `final` to classes where possible.

I did this (for LibreOffice), and final seems to be only a win when we do LTO and we can de-virtualise a bunch of stuff.

Jun 14 2021, 12:30 AM · Restricted Project, Restricted Project

May 14 2021

grandinj added a comment to D102486: Use a non-recursive mutex in GsymCreator..

GSYM conversion still spends a significant time for locking in GsymCreator::insertString even with only 8 threads, so lock contention seems to be generally an issue

May 14 2021, 1:24 PM · Restricted Project, debug-info

May 3 2021

grandinj added inline comments to D101752: Speedup to_string for integers using zero-copy..
May 3 2021, 6:12 AM · Restricted Project, Restricted Project
grandinj added inline comments to D101752: Speedup to_string for integers using zero-copy..
May 3 2021, 5:08 AM · Restricted Project, Restricted Project

Mar 26 2021

grandinj added inline comments to D99444: [ADT] Introduce lazy unique iterator.
Mar 26 2021, 11:56 PM · Restricted Project

Mar 25 2021

grandinj added a comment to D99307: [libc++] Eliminate <compare>'s dependency on <array>.

According to "graph_header_deps.py", this also removes <compare>'s dependencies on everything-except-type-traits, and drops its cumulative cost from ~40KLOC to ~8KLOC.

Mar 25 2021, 3:06 AM · Restricted Project

Jan 31 2021

grandinj added a comment to D95690: [LoopVectorize] improve IR fast-math-flags propagation in reductions.

random idea from a bystander:

Jan 31 2021, 12:04 PM · Restricted Project

Aug 28 2020

grandinj added inline comments to D86726: [InstCombine]: Transform 1.0/sqrt(X) * X to X/sqrt(X) and X * 1.0/sqrt(X) to X/sqrt(X).
Aug 28 2020, 1:25 AM · Restricted Project
grandinj added inline comments to D86726: [InstCombine]: Transform 1.0/sqrt(X) * X to X/sqrt(X) and X * 1.0/sqrt(X) to X/sqrt(X).
Aug 28 2020, 12:39 AM · Restricted Project

Aug 24 2020

grandinj added inline comments to D86465: [analyzer][solver] Redesign constraint ranges data structure.
Aug 24 2020, 9:36 AM · Restricted Project

Aug 11 2020

grandinj added a comment to D85709: [InstSimplify] Implement Instruction simplification for X/sqrt(X) to sqrt(X)..

Just a drive-by comment : Possibly the more general form of this needs to be optimised too?

Aug 11 2020, 1:46 AM · Restricted Project

May 23 2020

grandinj added a comment to D80398: [libc] Fix mtx_unlock to handle multiple waiters on a single mutex..

But now you have a "thundering herd" problem?

May 23 2020, 1:01 AM · Restricted Project

May 19 2020

grandinj added inline comments to D80202: [ASTMatchers] Performance optimization for memoization.
May 19 2020, 5:54 AM · Restricted Project

Apr 22 2020

grandinj added a comment to D78612: [libc] Add sanitizer instrumentation to the SIMD strlen implementation..

As a LibreOffice committer, strlen and friends are definitely hot :-)

Apr 22 2020, 11:57 PM · Restricted Project, Restricted Project

Apr 19 2020

grandinj added inline comments to D78391: [ValueLattice] Allow two range extensions..
Apr 19 2020, 12:30 AM · Restricted Project

Mar 23 2020

grandinj added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

Nice. Does LibreOffice have anything (either in clang-tidy or in a paper guideline) against T(x)-style casts? E.g.

Mar 23 2020, 8:08 AM · Restricted Project, Restricted Project
grandinj added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

Libreoffice has a similar clang-tidy-style cast-checker here:

Mar 23 2020, 1:06 AM · Restricted Project, Restricted Project

Feb 23 2020

grandinj added a comment to D75011: [InstCombine] Remove trivially empty ranges from end.

Nice. Makes me wonder what other loops in clang would work better backwards :-)

Feb 23 2020, 4:47 AM · Restricted Project

Feb 21 2020

grandinj added a comment to D74951: [lldb] Remove all the 'current_id' logging counters from the lookup code..

Just a drive-by suggestion: Logging the pointer value of the relevant root object in the callees would provide similar benefit to anyone needing to do log tracing

Feb 21 2020, 6:42 AM · Restricted Project

Feb 11 2020

grandinj added a comment to D74380: Fix SFINAE in llvm::bit_cast..

Hah, nice catch, this sounds like something that might make a nice clang-tidy check?

Feb 11 2020, 11:12 PM · Restricted Project

Jan 28 2020

Herald added a project to D52136: [clang-tidy] Add modernize-concat-nested-namespaces check: Restricted Project.

Thanks a lot for this checker - would it be possible to enhance it to also update stuff in associated header files?

Jan 28 2020, 6:04 AM · Restricted Project, Restricted Project

Jan 26 2020

grandinj added a reviewer for D73413: [clang-tidy] Add check to detect external definitions with no header declaration: sberg.
Jan 26 2020, 10:45 AM · Restricted Project, Restricted Project
grandinj added a comment to D73413: [clang-tidy] Add check to detect external definitions with no header declaration.

You might want to look at the equivalent LibreOffice checkers, which we have been using for some time

Jan 26 2020, 10:45 AM · Restricted Project, Restricted Project

Nov 19 2019

grandinj added a comment to D70425: [APFloat] Prevent construction of APFloat with Semantics and FP value.

Perhaps there should be an "= delete" constructor to make this a compile error?

Nov 19 2019, 5:39 AM · Restricted Project

Nov 15 2019

grandinj added a comment to D70288: [ADT][Expensive checks] Create a /dev/random seed only once when shuffling the range before sorting it to avoid bot timeouts.

haha, nice catch.

Nov 15 2019, 12:35 AM · Restricted Project

Oct 17 2019

grandinj added inline comments to D69087: [llvm-ar] Implement the O modifier: display member offsets inside the archive.
Oct 17 2019, 1:44 AM · Restricted Project

Sep 26 2019

grandinj added a comment to D68074: [clang-tidy] Add readability-make-member-function-const.

Nice! I went with a more brute force approach, and I also struggled with logical vs physical const-correctness

Sep 26 2019, 1:02 AM · Restricted Project, Restricted Project

Sep 10 2019

grandinj added inline comments to D67376: [DWARF] Evaluate DW_OP_entry_value.
Sep 10 2019, 1:33 PM · Restricted Project

Aug 24 2019

grandinj added inline comments to D66671: [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null for vectors.
Aug 24 2019, 9:21 AM · Restricted Project

Jul 25 2019

grandinj added a comment to D65250: [analyzer] exploded-graph-rewriter: Improve user-friendliness..

There is no need to wrap SVG in HTML if you want to display it in a web-browser, you can just open the web-browser explicitly, they already support opening SVG, use something like

Jul 25 2019, 3:49 AM · Restricted Project, Restricted Project

Jul 20 2019

grandinj added a comment to D65025: [Symbol] Improve TypeSystemMap mutex safety.

Maybe make AddMap take a lock_guard parameter as recommended here

https://stackoverflow.com/questions/28825749/ensuring-that-current-thread-holds-a-lock-on-a-c11-mutex

?

Jul 20 2019, 4:36 AM

Jul 19 2019

grandinj added a comment to D64936: [Local] Zap blockaddress without users in ConstantFoldTerminator..

Just a comment from a bystander:

Jul 19 2019, 12:59 AM · Restricted Project

Jul 14 2019

grandinj added inline comments to D64707: [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483).
Jul 14 2019, 11:32 PM · Restricted Project
grandinj added inline comments to D64707: [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483).
Jul 14 2019, 12:17 PM · Restricted Project

Jul 11 2019

grandinj added inline comments to D64533: [IndVars] Special case the problematic (gep inbounds p, iv == nullptr) problem (pr42357) .
Jul 11 2019, 4:59 AM

Jun 24 2019

grandinj added inline comments to D63691: [APInt] Fix getBitsNeeded for INT_MIN values.
Jun 24 2019, 1:40 AM · Restricted Project

May 26 2019

grandinj added inline comments to D62439: PGO] Handle cases of failing to split critical edges.
May 26 2019, 12:02 AM · Restricted Project

Aug 16 2018

grandinj added inline comments to D50798: [LoopVectorizer] Take into account call register pressure when selecting interleave count.
Aug 16 2018, 2:50 AM

Jul 19 2018

grandinj added a comment to D49512: [CodeGenPrepare] Add BothExtension type to PromotedInsts.

from someone who is just an observer: What happens when we see IsSExt types

A
B
A

?
Then the last one will re-insert A, which is probably not what you want.

Jul 19 2018, 5:19 AM

Jul 16 2018

grandinj added inline comments to D49363: [XRay][compiler-rt] Segmented Array: Simplify and Optimise.
Jul 16 2018, 4:48 AM

Jun 8 2018

grandinj added inline comments to D47959: [DAG] Avoid needing to walk out legalization tables. NFCI..
Jun 8 2018, 2:00 PM

Jan 23 2018

grandinj added inline comments to D42385: [InstSimplify] (X * Y) / Y --> X for relaxed floating-point ops.
Jan 23 2018, 12:57 AM

Jan 18 2018

grandinj added inline comments to D42234: [ADT] Add PropagateConst from LFTS2.
Jan 18 2018, 4:47 AM · Restricted Project

Jan 17 2018

grandinj added inline comments to D42163: [STLExtras] Add merge_unique.
Jan 17 2018, 1:15 AM

Dec 24 2017

grandinj added inline comments to D41554: [InstSimplify] Missed optimization in math expression: (x+x)/x == 2.
Dec 24 2017, 3:23 AM

Nov 24 2017

grandinj added inline comments to D40409: [Tooling] Acknowledge that many CompilationDatabases don't support enumeration..
Nov 24 2017, 2:32 AM

Nov 15 2017

grandinj added a comment to D40074: [GISel] Canonicalize constants to RHS for commutative operations.

If this is the first canonicalization (of potentially many to come) in the IRTranslator, would it make sense to try and document the canonical representation(s) somewhere and/or somehow?

Nov 15 2017, 11:26 AM

Nov 1 2017

grandinj added a comment to D39373: Reorder Value.def to optimize code size.

Sorry, I'm not an LLVM reviewer of any note, can't make any useful decisions

Nov 1 2017, 1:59 AM

Oct 27 2017

grandinj added inline comments to D39373: Reorder Value.def to optimize code size.
Oct 27 2017, 11:42 AM

Aug 8 2017

grandinj added inline comments to D36447: private_typeinfo: limit is_dst_type_derived_from_static_type optimization.
Aug 8 2017, 4:22 AM

Jul 26 2017

grandinj added inline comments to D35901: [DAG] Improve candidate pruning in store merge failure case. NFCI.
Jul 26 2017, 1:03 PM
grandinj added inline comments to D35907: [StackColoring] Update AliasAnalysis information in stack coloring pass.
Jul 26 2017, 1:01 PM
grandinj added inline comments to D35869: [ADCE][Dominators] Teach ADCE to preserve dominators.
Jul 26 2017, 4:56 AM

Jul 21 2017

grandinj added inline comments to D35702: [LTO][ThinLTO] Use the linker resolutions to mark global values as dso_local..
Jul 21 2017, 1:54 AM

Jul 15 2017

grandinj added inline comments to D35451: [InstCombine] Improve the expansion in SimplifyUsingDistributiveLaws to handle cases where one side doesn't simplify, but the other side resolves to an identity value.
Jul 15 2017, 8:42 AM

Jul 13 2017

grandinj added inline comments to D35371: [COFF] Bounds check relocations.
Jul 13 2017, 11:56 AM

Jul 9 2017

grandinj added a comment to D35145: Use emplace_back to replace size() and resize()..

I'm curious if you know why emplace_back is so much faster than resize(size+1) ?

Jul 9 2017, 6:13 AM

May 12 2017

grandinj added inline comments to D33125: Introduce isoneof<T0, T1, ...> as an extension of isa<T>.
May 12 2017, 12:44 PM

May 5 2017

grandinj added a comment to D32884: [LazyValueInfo] Avoid unnecessary copies of ConstantRanges.

if anyone is interested, I wrote a clang plugin for the LibreOffice codebase to find methods that can return a const ref.

May 5 2017, 3:20 AM

Apr 1 2017

grandinj added inline comments to D31565: [APInt] Move isMask and isShiftedMask out of APIntOps and into the APInt class. Implement them without memory allocation for multiword.
Apr 1 2017, 6:21 AM

Mar 16 2017

grandinj added inline comments to D31029: [analyzer] Fix logical not for pointers with different bit width.
Mar 16 2017, 11:45 AM
grandinj added inline comments to D31032: [LoadCombine] Avoid analysing dead basic blocks.
Mar 16 2017, 11:39 AM

Jan 13 2017

grandinj added a comment to D28716: [libc++] Diagnose null inputs in std::string using _LIBCPP_DIAGNOSE_WARNING.

would it be better to internally treat attribute((non_null)) like diagnose_if ? then you get all the warnings for free?

Jan 13 2017, 10:04 PM

Jan 11 2017

grandinj added inline comments to D28585: [RegisterCoalescing] Remove partial redundent copy.
Jan 11 2017, 11:33 PM

Nov 27 2016

grandinj added a comment to D27145: Add "RPRED" mechanism for relocation predicates. (5% speedup for `ld.lld -O0`).

wow, that is neat.
I wonder if it would be legal to teach the compiler to do this if both sides of the expression were enum values of the same type (or possibly more legal if they were scoped enums) ?

Nov 27 2016, 10:43 PM

Nov 26 2016

grandinj added a comment to D27145: Add "RPRED" mechanism for relocation predicates. (5% speedup for `ld.lld -O0`).

Do the use-sites need to be updated? Won't the compiler already simplify such expressions (just concerned that the use-sites may be come less legible)

Nov 26 2016, 10:53 PM

Oct 14 2016

grandinj added a comment to D25639: Add ctor for string literal to StringRef, and make explicit the conversion from const char *.

You might like to take a look at the ConstCharArrayDetector stuff in the LibreOffice codebase here:

Oct 14 2016, 11:00 PM

Sep 22 2016

grandinj added inline comments to D24805: [GVNSink] Initial GVNSink prototype.
Sep 22 2016, 12:43 PM

Aug 28 2016

grandinj added inline comments to D23965: Add StringRef::keep_front() and StringRef::keep_back().
Aug 28 2016, 5:04 AM

Jul 12 2016

grandinj added a comment to D22249: Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends..

Seeing this, you might be interested in the enum/bitset library we use in LibreOffice:

Jul 12 2016, 12:12 AM

Jul 1 2016

grandinj added inline comments to D21706: [libcxx] refactor for throw.
Jul 1 2016, 12:15 AM

Jun 24 2016

grandinj added inline comments to D21673: [libcxx] guard throw with exception enabling check.
Jun 24 2016, 1:25 AM
grandinj added inline comments to D21667: [analyzer] Add rudimentary handling of AtomicExpr..
Jun 24 2016, 1:21 AM