Page MenuHomePhabricator

chandlerc (Chandler Carruth)Administrator
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 7 2012, 2:54 PM (336 w, 9 h)
Roles
Administrator

Recent Activity

Today

chandlerc added a comment to D55641: [CallSite removal] Migrate all Alias Analysis APIs to use the newly minted `CallBase` class instead of the `CallSite` wrapper..

Ping.

Sat, Dec 15, 11:00 PM
chandlerc added a parent revision for D55641: [CallSite removal] Migrate all Alias Analysis APIs to use the newly minted `CallBase` class instead of the `CallSite` wrapper.: D55638: [CallSite removal] Add and flesh out APIs on the new `CallBase` base class that previously were only available on the `CallSite` wrapper..
Sat, Dec 15, 11:00 PM
chandlerc added a child revision for D55638: [CallSite removal] Add and flesh out APIs on the new `CallBase` base class that previously were only available on the `CallSite` wrapper.: D55641: [CallSite removal] Migrate all Alias Analysis APIs to use the newly minted `CallBase` class instead of the `CallSite` wrapper..
Sat, Dec 15, 11:00 PM
chandlerc added a comment to D55638: [CallSite removal] Add and flesh out APIs on the new `CallBase` base class that previously were only available on the `CallSite` wrapper..

Ping.

Sat, Dec 15, 11:00 PM

Wed, Dec 12

chandlerc created D55641: [CallSite removal] Migrate all Alias Analysis APIs to use the newly minted `CallBase` class instead of the `CallSite` wrapper..
Wed, Dec 12, 7:31 PM
chandlerc created D55638: [CallSite removal] Add and flesh out APIs on the new `CallBase` base class that previously were only available on the `CallSite` wrapper..
Wed, Dec 12, 7:13 PM

Wed, Dec 5

chandlerc committed rL348374: [SLH] Fix a nasty bug in SLH..
[SLH] Fix a nasty bug in SLH.
Wed, Dec 5, 7:45 AM
chandlerc committed rL348373: [SLH] Regenerate tests with --no_x86_scrub_rip to restore the higher.
[SLH] Regenerate tests with --no_x86_scrub_rip to restore the higher
Wed, Dec 5, 7:44 AM
chandlerc added a comment to D53431: clang appears not to respect __attribute__((noinline)).

actually optnone is not well adapted here, since it demotes local optimizations on the functions, but we still want to keep scalar or target optimisations to be applied, but not interprocedural optimisations.

so maybe a new attribute , e.g ((noglobalopt) would be useful to exclude an object from all global optimizations (dfe, dve, global constant prop, ...). Do you think it is worth to make a proposal ?

Wed, Dec 5, 1:05 AM

Tue, Dec 4

chandlerc requested changes to D54743: SROA: preserve alignment tags on loads and stores..
Tue, Dec 4, 6:02 AM
chandlerc added inline comments to D54743: SROA: preserve alignment tags on loads and stores..
Tue, Dec 4, 6:02 AM
chandlerc added inline comments to D54472: Disable invalid isPodLike<> specialization.
Tue, Dec 4, 3:18 AM
chandlerc accepted D47022: Update MemorySSA in SimpleLoopUnswitch..

LGTM

Tue, Dec 4, 3:02 AM
chandlerc requested changes to D54740: [NewPM] fixing asserts on deleted loop in -print-after-all.

One place that I'm not seeing an update reflected (but I may just misunderstand)....

Tue, Dec 4, 2:07 AM
chandlerc requested changes to D54794: [NewPM] -print-before/-print-after support for new pass manager.

(just marking that this is waiting on update from Fedor)

Tue, Dec 4, 2:03 AM
chandlerc requested changes to D54877: Update coding guidelines regarding use of `auto`.

Please focus the discussion on the llvm-dev thread rather than here.

Tue, Dec 4, 2:02 AM
chandlerc requested changes to D54888: Optimize IRGen for load/stores of bitfields.

Marking as waiting update from Mehdi and adding Richard as a reviewer since this will need to deal with what our defined volatile semantics are for bitfields which seems like the kind of thing he would want to be very aware of...

Tue, Dec 4, 1:55 AM
chandlerc added inline comments to D54909: [clang][slh] add Clang attr no_speculative_load_hardening.
Tue, Dec 4, 1:53 AM
chandlerc requested changes to D55150: Emit warnings from the driver for use of -mllvm or -Xclang options..

I think this should be internal-driver-option and the text updated? I don't think these are necessarily experimental, they're internals of the compiler implementation, and not a supported interface for users. Unsure how to best explain this.

Tue, Dec 4, 1:45 AM
chandlerc requested changes to D55187: Allow norecurse attribute on functions that have debug infos..
Tue, Dec 4, 1:43 AM
chandlerc updated subscribers of D55251: [X86] Enable -x86-experimental-vector-widening-legalization by default..

Most of the test case changes make sense to me.

Tue, Dec 4, 1:12 AM
chandlerc resigned from D3543: Some minor update in PassManager.h.
Tue, Dec 4, 12:57 AM
chandlerc resigned from D34157: [llvm-stress] Use C++11 mersenne_twister_engine random device instead of our own (PR32585).
Tue, Dec 4, 12:56 AM
chandlerc requested changes to D54742: [CodeMetrics] Don't let extends of i1 be free..

@chandlerc Are you happy with this now?

Tue, Dec 4, 12:56 AM

Fri, Nov 30

chandlerc committed rL347984: Add more companies that we have directly contacted..
Add more companies that we have directly contacted.
Fri, Nov 30, 4:35 AM
chandlerc committed rL347972: Update relicensing status..
Update relicensing status.
Fri, Nov 30, 1:31 AM
chandlerc closed D55103: Update relicensing status..
Fri, Nov 30, 1:31 AM

Thu, Nov 29

chandlerc created D55103: Update relicensing status..
Thu, Nov 29, 7:37 PM

Wed, Nov 28

chandlerc added a comment to D54472: Disable invalid isPodLike<> specialization.

While I like the update (keeping any potential changes to Optional and SmallVector separate seems good) I have a serious concern that this has the same fundamental problem as the prior mentioned ABI issue.

Wed, Nov 28, 1:10 AM

Sun, Nov 25

chandlerc added a comment to D54888: Optimize IRGen for load/stores of bitfields.

Mehdi pointed out that his primary concern is *volatile* access.

Sun, Nov 25, 10:57 PM
chandlerc added a comment to D54888: Optimize IRGen for load/stores of bitfields.

At least for TSan, this is undesirable -- we want a chance to observe these as potential data races.

Sun, Nov 25, 10:43 PM
chandlerc created D54887: WIP: hack to use DL for promoting to load/store.
Sun, Nov 25, 9:49 PM

Sat, Nov 24

chandlerc added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Adding new support for a vector math library seems worth getting reviewed / approved by someone reasonably deeply familiar w/ our vectorization infra.

Sat, Nov 24, 5:57 PM

Fri, Nov 23

chandlerc added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

@joel_k_jones , @steleman

I am sorry for having kept you waiting for the patch. I was not fully aware of the approval process upstream (didn’t do much contributions upstream myself), and before being able to approve I had to understand the process.

I will approve the patch and you will be able to submit it, but before doing that I would like to ask another tiny change.

Fri, Nov 23, 11:52 PM

Thu, Nov 22

chandlerc committed rL347452: [TI removal] Leverage the fact that TerminatorInst is gone to create.
[TI removal] Leverage the fact that TerminatorInst is gone to create
Thu, Nov 22, 2:35 AM
chandlerc closed D54788: [TI removal] Leverage the fact that TerminatorInst is gone to create a normal base class that provides all common "call" functionality..
Thu, Nov 22, 2:34 AM
chandlerc added a comment to D54794: [NewPM] -print-before/-print-after support for new pass manager.

In an IRC discussion, some interesting points were raised about this, and I wanted to try to give a better naming pattern and more concrete outline. I'll do it by giving a pseudo output tree I could imagine:

Thu, Nov 22, 2:23 AM
chandlerc added a comment to D54794: [NewPM] -print-before/-print-after support for new pass manager.

I somewhat agree w/ Philip that this seems like too much complexity / machinery for what it does...

Thu, Nov 22, 12:58 AM

Wed, Nov 21

chandlerc created D54788: [TI removal] Leverage the fact that TerminatorInst is gone to create a normal base class that provides all common "call" functionality..
Wed, Nov 21, 4:47 AM

Tue, Nov 20

chandlerc added a comment to D54472: Disable invalid isPodLike<> specialization.

FWIW, I really like the direction you and Dave are pursuing. My random thoughts about how to make progress below:

Tue, Nov 20, 2:04 AM
chandlerc added a comment to D54695: [PM] Port Scalarizer to the new pass manager..

Bunch of somewhat minor API cleanups that seem reasonable to do when touching these specific bits of the code...

Tue, Nov 20, 1:27 AM
chandlerc requested changes to D54742: [CodeMetrics] Don't let extends of i1 be free..

As was mentioned in the original patch, this does still need tests. There are tests here, for example in test/Analysis/CostModel/.... You should be able to see some differences in costs, especially for architectures where the resulting cost computation differs significantly.

Tue, Nov 20, 1:16 AM

Mon, Nov 19

chandlerc added a comment to D53373: [CodeMetrics] Don't let extends of i1 be free..

This patch was never sent to llvm-commits.

Mon, Nov 19, 11:32 PM
chandlerc added inline comments to D54740: [NewPM] fixing asserts on deleted loop in -print-after-all.
Mon, Nov 19, 11:23 PM
chandlerc updated subscribers of D50725: [SystemZ] Replace subreg_r with subreg_h.

We're all still waiting on a fix here....

Mon, Nov 19, 5:37 PM

Fri, Nov 16

chandlerc added a comment to D54555: [clang][slh] add attribute for speculative load hardening.

Would there be value in making this a type attribute that appertains to the function type so that you don't lose this protection when calling through function pointers (as you could then add the attribute to the function pointer type as well)? If the stack pointer value is changed as part of the function prologue, this may not be needed, but if the stack pointer value is changed on the calling side, perhaps this would add value?

Fri, Nov 16, 2:59 PM
chandlerc added a comment to D54555: [clang][slh] add attribute for speculative load hardening.

Does this hardening impact the ABI in any way? e.g., do we have to do anything special to handle calls through function pointers where the bound function pointer is marked with this attribute?

Not entirely sure, but I don't think so.

Fri, Nov 16, 2:58 PM

Nov 15 2018

chandlerc committed rL346977: Move AMD to the "signed" bucket..
Move AMD to the "signed" bucket.
Nov 15 2018, 10:34 AM
chandlerc committed rL346976: Reorganize the company listing and add UIUC as signed..
Reorganize the company listing and add UIUC as signed.
Nov 15 2018, 10:30 AM
chandlerc closed D54566: Reorganize the company listing and add UIUC as signed..
Nov 15 2018, 10:30 AM

Nov 14 2018

chandlerc added a reviewer for D54555: [clang][slh] add attribute for speculative load hardening: kristof.beyls.

Really cool, and nice job with the first round of things. Very nice testing!

Nov 14 2018, 9:17 PM
chandlerc accepted D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.

still LGTM.

Nov 14 2018, 9:08 PM
chandlerc created D54566: Reorganize the company listing and add UIUC as signed..
Nov 14 2018, 9:01 PM
chandlerc closed D54018: Update the relicensing website to better explain the list of companies, and update the list as some more signatures have come in..
Nov 14 2018, 9:00 PM
chandlerc updated the diff for D54018: Update the relicensing website to better explain the list of companies, and update the list as some more signatures have come in..

Reorganize the company listing and add UIUC as signed.

Nov 14 2018, 8:58 PM
chandlerc added inline comments to D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.
Nov 14 2018, 3:24 PM
chandlerc added inline comments to D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.
Nov 14 2018, 3:22 PM
chandlerc added a comment to D54547: PTH-- Remove feature entirely-.

Should likely add release notes about this.

Nov 14 2018, 2:47 PM
chandlerc added a comment to D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.

Makes sense to me generally. Some questions below really.

Nov 14 2018, 2:44 PM

Nov 13 2018

chandlerc requested changes to D53554: [Argument Promotion] Only promote args when function attributes are compatible.
Nov 13 2018, 4:46 PM

Nov 12 2018

chandlerc added a comment to D53554: [Argument Promotion] Only promote args when function attributes are compatible.

Sorry that this comment has gotten lost *twice*. I tried to write it over a week ago. =[[[[

Nov 12 2018, 2:38 PM
chandlerc accepted D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.

I think this is looking pretty good as an initial cut. I'm still very interested in follow-ups to use a more precise heuristic of course, but I think those can be follow-ups.

Nov 12 2018, 7:43 AM

Nov 10 2018

chandlerc accepted D54336: [FileCheck] introduce CHECK-COUNT-<num> repetition directive.

FWIW, this looks really good to me. I'd be fine with this going in as-is and any further improvements suggested by David as follow-ups. Feel free to submit with comments addressed.

Nov 10 2018, 9:34 AM
chandlerc accepted D54374: [newpm] Add an OptimizerLast EP.

Generally feel free to submit w/ comment and commit message updates.

Nov 10 2018, 9:26 AM
chandlerc added a comment to D54378: Add Hurd triplet to LLVMSupport.

I really do find the break with convention here somewhat deeply unfortunate. It makes parsing and recognizing triples reliably much harder IMO. This really should be 'hurd-gnu' or 'mach-gnu' (or however you want to spell the 'OS' here).

Nov 10 2018, 8:46 AM

Nov 9 2018

chandlerc added a comment to D54336: [FileCheck] introduce CHECK-COUNT-<num> repetition directive.

Seems pretty reasonable to me. Pretty minor things below...

Nov 9 2018, 12:02 PM

Nov 8 2018

chandlerc added a comment to D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.

I like you suggestion of writing FileCheck against print<loops> output.

Nov 8 2018, 1:54 PM
chandlerc accepted D47259: [IPSCCP,PM] Preserve DT in the new pass manager..

FWIW, still LGTM and I think you can go ahead and submit.

Nov 8 2018, 11:54 AM
chandlerc added reviewers for D54203: Use template instead of void* -based type erasure in MachineRegistry: bogner, MatzeB.

This is the legacy PM, and specifically as it is implemented in codegen, so my opinions are few and far between... Not sure the benefits here are all that important, but maybe? Looping in folks w/ more backend feelings about this kind of thing.

Nov 8 2018, 11:17 AM
chandlerc accepted D47259: [IPSCCP,PM] Preserve DT in the new pass manager..

LGTM, nit below.

Nov 8 2018, 11:02 AM

Nov 7 2018

chandlerc added a comment to D54223: [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch with.

Honestly, this seems like a really reasonable approach in practice.

Nov 7 2018, 1:56 PM
chandlerc accepted D54211: [SimpleLoopUnswitch] partial unswitch needs to be careful when replacing invariants with constants.

LGTM too (but always feel free to submit w/ Alina's review)

Nov 7 2018, 11:58 AM
chandlerc added a comment to D54211: [SimpleLoopUnswitch] partial unswitch needs to be careful when replacing invariants with constants.

Could you not introduce all the separate test files?

Nov 7 2018, 10:57 AM
chandlerc added a comment to D54211: [SimpleLoopUnswitch] partial unswitch needs to be careful when replacing invariants with constants.

Could you not introduce all the separate test files?

Nov 7 2018, 10:53 AM

Nov 2 2018

chandlerc added a comment to D53895: [LoopUnroll] add parsing for unroll parameters in -passes pipeline.

What is the advantage of this over using command line args?

Obviously you can do per-pass-instance configuration, but is that ever necessary in parsed pipelines?

Nov 2 2018, 10:04 AM
chandlerc committed rL345994: Update the relicensing website to better explain the list of companies, and.
Update the relicensing website to better explain the list of companies, and
Nov 2 2018, 9:39 AM

Nov 1 2018

chandlerc created D54018: Update the relicensing website to better explain the list of companies, and update the list as some more signatures have come in..
Nov 1 2018, 5:54 PM

Oct 31 2018

chandlerc added a comment to D53895: [LoopUnroll] add parsing for unroll parameters in -passes pipeline.

Curious how others feel, but I'd prefer to keep all the parsing in the pass builder rather than start calling back into the passes. I think that keeps the passes more minimal, and I don't think this kind of parsing should he so widespread as to need separation. If a few passes have custom logicbib pass builder that seems ok...

Oct 31 2018, 3:09 AM
chandlerc accepted D53440: [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll.

I think this is fine to go in, a minor suggestion inline. Rest can be follow-up.

Oct 31 2018, 3:01 AM

Oct 30 2018

chandlerc added a comment to D28791: [compiler-rt][crt] Simple crtbegin and crtend implementation.

In addition to what Eric said, I just want to pull back up an old comment here:

Oct 30 2018, 6:34 PM
chandlerc added inline comments to D28791: [compiler-rt][crt] Simple crtbegin and crtend implementation.
Oct 30 2018, 5:44 PM
chandlerc added inline comments to D53440: [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll.
Oct 30 2018, 2:31 AM
chandlerc added inline comments to D53440: [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll.
Oct 30 2018, 1:43 AM

Oct 26 2018

chandlerc added inline comments to D53440: [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll.
Oct 26 2018, 3:17 AM
chandlerc accepted D53747: [SimpleLoopUnswitch] Make all checks before actual non-trivial unswitch.

Awesome improvement, thanks!

Oct 26 2018, 2:29 AM
chandlerc accepted D53744: [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics.

Generally looks fine, two minor adjustments below and LGTM once the underlying cleanuppad change lands.

Oct 26 2018, 2:25 AM
chandlerc added inline comments to D51207: Introduce llvm.experimental.widenable_condition intrinsic.
Oct 26 2018, 1:53 AM
chandlerc added a comment to D53747: [SimpleLoopUnswitch] Make all checks before actual non-trivial unswitch.

FWIW, after my suggestion I would not call this "NFC" as it should change the cost function of this routine at least....

Oct 26 2018, 1:53 AM
chandlerc added inline comments to D53744: [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics.
Oct 26 2018, 1:47 AM
chandlerc added inline comments to D53744: [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics.
Oct 26 2018, 1:22 AM
chandlerc added a comment to D53744: [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics.

The old version of unswitching only needs a condition to unswitch on, not a particular user of this condition. That's why guards and branches can be handled in the same manner there. New one, however, also needs info about the particular user (which is currently always a terminator instruction). The boons it gives to us is that we can make a surgical DT and LI update and not invalidate these analyzes as a whole. The underlying logic in unswitchNontrivialInvariants deeply specializes on the terminator type (either branch of switch), and introducing a new type of a user (which is also a non-terminator) will make us write a lot of ugly duplicating code or mess up the existing code. It will also be bug prone.

I think it's not worth doing because I hope that we will be able to get rid of llvm.experimental.guard at all once we have D51207 merged. In that case, guards will be expressed as normal branches. I put a lot of faith into this patch, that's why I don't want to mess up the existing code (or duplicate it) just to support something that isn't going to live long.

Oct 26 2018, 1:20 AM
chandlerc added a comment to D53744: [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics.

While this is a neat way to handle this, I'm a bit worried about the effects of it...

Oct 26 2018, 12:35 AM

Oct 23 2018

chandlerc accepted D52915: [PM] keeping history when original SCC split and then merge into itself in the same round of SCC update ..

Sorry for delay...

Oct 23 2018, 4:02 PM

Oct 22 2018

chandlerc accepted D51718: Update MemorySSA in LoopRotate..

Minor comments on test case, otherwise this LGTM. Feel free to submit with a minimized test case.

Oct 22 2018, 1:15 PM
chandlerc added a reviewer for D49672: [CMake] Honor LLVM_EXTERNAL_<proj>_SOURCE_DIR: beanz.

I'm really just not sure how all this complexity is supposed to sort out. Maybe Chris has some thoughts here?

Oct 22 2018, 1:11 PM
chandlerc requested changes to D53431: clang appears not to respect __attribute__((noinline)).

The intent of noinline in LLVM's IR is to block inlining, not all interprocedural optimizations. So I don't think this is actually a bug and don't think this patch should be applied.

Oct 22 2018, 1:09 PM

Oct 18 2018

chandlerc committed rL344769: [TI removal] Remove `TerminatorInst` from the IR type system!.
[TI removal] Remove `TerminatorInst` from the IR type system!
Oct 18 2018, 5:24 PM
chandlerc committed rL344768: [TI removal] Switch some newly added code over to use `Instruction`.
[TI removal] Switch some newly added code over to use `Instruction`
Oct 18 2018, 5:24 PM
chandlerc committed rL344764: [TI removal] Update the C API for the move away from `TerminatorInst`..
[TI removal] Update the C API for the move away from `TerminatorInst`.
Oct 18 2018, 4:06 PM
chandlerc closed D52968: [TI removal] Update the C API for the move away from `TerminatorInst`..
Oct 18 2018, 4:06 PM