Page MenuHomePhabricator

JosephTremoulet (Joseph Tremoulet)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 2 2015, 7:30 PM (315 w, 5 d)

Recent Activity

Wed, Jun 2

JosephTremoulet committed rGcbde2487367a: Add getDemandedBits for uses. (authored by qunyanm).
Add getDemandedBits for uses.
Wed, Jun 2, 7:08 AM
JosephTremoulet closed D97074: Add getDemandedBits for uses..
Wed, Jun 2, 7:08 AM · Restricted Project

May 19 2021

JosephTremoulet accepted D99962: [FPEnv] EarlyCSE support for constrained intrinsics, default FP environment edition.

LGTM assuming you clang-format the patch.

May 19 2021, 6:58 AM · Restricted Project

May 14 2021

JosephTremoulet added inline comments to D99962: [FPEnv] EarlyCSE support for constrained intrinsics, default FP environment edition.
May 14 2021, 12:41 PM · Restricted Project

May 7 2021

JosephTremoulet committed rGbc302bfbef84: BasicAA: Recognize inttoptr as isEscapeSource (authored by JosephTremoulet).
BasicAA: Recognize inttoptr as isEscapeSource
May 7 2021, 7:49 AM
JosephTremoulet closed D101541: BasicAA: Recognize inttoptr as isEscapeSource.
May 7 2021, 7:49 AM · Restricted Project

May 6 2021

JosephTremoulet added a comment to D101541: BasicAA: Recognize inttoptr as isEscapeSource.

LGTM, but I'd suggest waiting a bit in case there are further comments -- it's a tricky area.

May 6 2021, 11:45 AM · Restricted Project

May 2 2021

JosephTremoulet added a comment to D101541: BasicAA: Recognize inttoptr as isEscapeSource.

There's this comment in isNonEscapingLocalObject:

// If this is an argument that corresponds to a byval or noalias argument,
// then it has not escaped before entering the function.  Check if it escapes
// inside the function.

Which supports this patch. Though this claim doesn't seem very clear to me. e.g. we mark memcpy's arguments with noalias. It's not guaranteed case that the input pointers haven't escaped before. So the exact meaning of noalias is not clear to me.
I've read the C11 standard re restrict, and it is omissive w.r.t. to int2ptr casts. Though I think this patch respects the spirit of the standard. We just need to nail the exact semantics of noalias at some point..
TL;DR: LGTM.

May 2 2021, 6:07 PM · Restricted Project

Apr 30 2021

JosephTremoulet added a comment to D101541: BasicAA: Recognize inttoptr as isEscapeSource.

isNonEscapingLocalObject returns true if the pointer is a noalias argument, and it's worth clarifying why this is okay somewhere.

The noalias argument case is slightly different from other cases because its address could have been ptrtoint-ed already. For example:

%i = ptrtoint i8* %ptr0 to i64
call void @f(i8* %ptr0, i64 %i)

define void @f(i8* noalias %ptr, i64 %i) {
  ; access %ptr <- isNonEscapingLocalObject(%ptr) is true, but
  ; access inttoptr(%i) <- this can exactly touch %ptr.
}

It isn't clear whether the second access is successfully done according to the definition of based-on in LangRef.
Should we clarify that noalias ptr (%ptr) is not based on the original pointer (%ptr0)?

Apr 30 2021, 8:40 AM · Restricted Project

Apr 29 2021

JosephTremoulet added a comment to D101541: BasicAA: Recognize inttoptr as isEscapeSource.

I believe this is correct, and also not affected by open ptrtoint/inttoptr issues.

Apr 29 2021, 10:47 AM · Restricted Project
JosephTremoulet updated the diff for D101541: BasicAA: Recognize inttoptr as isEscapeSource.
  • Include negative tests and alloca as well as noalias parameter
Apr 29 2021, 10:46 AM · Restricted Project
JosephTremoulet added a comment to D101541: BasicAA: Recognize inttoptr as isEscapeSource.

I've verified this doesn't break anything in check-all or in test-suite with SpecInt2017 included. I'm happy for suggestions if there are other testing paces this should be put through. Thanks.

Apr 29 2021, 8:43 AM · Restricted Project
JosephTremoulet added reviewers for D101541: BasicAA: Recognize inttoptr as isEscapeSource: hfinkel, nikic, rtaylor, nlopes.
Apr 29 2021, 8:42 AM · Restricted Project
JosephTremoulet requested review of D101541: BasicAA: Recognize inttoptr as isEscapeSource.
Apr 29 2021, 8:41 AM · Restricted Project

Apr 8 2021

JosephTremoulet committed rGb785e03612d7: Support: mapped_file_region: Pass MAP_NORESERVE to mmap (authored by JosephTremoulet).
Support: mapped_file_region: Pass MAP_NORESERVE to mmap
Apr 8 2021, 6:08 AM
JosephTremoulet closed D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.
Apr 8 2021, 6:07 AM · Restricted Project
JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

Since no one else is responding, lets try this out and see how things go.

Apr 8 2021, 6:07 AM · Restricted Project

Apr 6 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

Ping

Apr 6 2021, 1:24 PM · Restricted Project

Mar 30 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

Ping. I'd like to figure out how to make forward progress with this. A couple points:

Mar 30 2021, 7:22 AM · Restricted Project

Mar 26 2021

JosephTremoulet added inline comments to D99305: [docs] Document our norms around reverts.
Mar 26 2021, 9:02 AM · Restricted Project

Mar 22 2021

JosephTremoulet updated subscribers of D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

I haven't checked the manpage or the linux kernel behavior, but intuitively, I would expect that a shared mapping should not trigger an OOM, because at any point the kernel can decide to flush the dirty pages to disk (that's actually one technique for creating a per-process swap file).

Mar 22 2021, 8:47 AM · Restricted Project

Mar 19 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

Thanks for taking a look!

Mar 19 2021, 1:55 PM · Restricted Project

Mar 17 2021

JosephTremoulet updated subscribers of D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

I would mark as accepted but I am not the code owner for llvm/lib/Support/Unix.

Mar 17 2021, 7:17 AM · Restricted Project

Mar 3 2021

JosephTremoulet added a reviewer for D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap: clayborg.
Mar 3 2021, 8:21 AM · Restricted Project

Mar 2 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

ping

Mar 2 2021, 8:11 AM · Restricted Project

Feb 22 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

Ping

Feb 22 2021, 8:49 AM · Restricted Project

Feb 15 2021

JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

MAP_NORESERVE is dead on NetBSD as this is the default mode always.

Feb 15 2021, 8:41 AM · Restricted Project

Feb 12 2021

JosephTremoulet added reviewers for D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap: zturner, labath, jhenderson.
Feb 12 2021, 12:25 PM · Restricted Project
JosephTremoulet added a comment to D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.

What led me here was failure in LLDB to open large core dumps because the mmap call was failing with the default memory overcommit policy. It's easy to override the policy as a workaround, but it would be nice not to have to. I considered making this a configurable attribute of mapped_file_region (as in a constructor parameter specifying whether OOM failure should be prompt or delayed), which could then be plumbed through so specifically opening core files in LLDB requests it, but I figured this should be consistent across the "Unix" and "Windows" implementations, and AFAICT there's not a good way to have a Linux-style eager-commit/failure on the Windows side, and since delaying the failure is the Windows behavior already, this change does make things consistent. So this is what I ended up with.

Feb 12 2021, 12:24 PM · Restricted Project
JosephTremoulet requested review of D96626: Support: mapped_file_region: Pass MAP_NORESERVE to mmap.
Feb 12 2021, 12:18 PM · Restricted Project

Jan 29 2021

JosephTremoulet added a comment to D95683: [lldb] Fix fallout caused by D89156 on 11.0.1 for MacOS.

LGTM (and thanks for the fix and apologies for the break) )but I think @tstellar should have a look given it's fixing a build break in the release/11.x branch caused by my porting of changes from master for https://bugs.llvm.org/show_bug.cgi?id=48053

Jan 29 2021, 8:07 AM · Restricted Project
JosephTremoulet added a reviewer for D95683: [lldb] Fix fallout caused by D89156 on 11.0.1 for MacOS: tstellar.
Jan 29 2021, 8:05 AM · Restricted Project
JosephTremoulet updated subscribers of D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.

Oh, I see. I made this change in the master branch and then ported it to the release/11.x branch. It changed the signature of a virtual method, which had a couple more overrides in the release/11.x branch, and when I ported the change I didn't realize those other overrides existed. So now the release/11.x builds that include those overrides (btw, what build flags are needed to include those?) are broken. I'm not sure what the options are now that 11.0.1 has been released and 11.1.0 is at rc2 -- @tstellar, thoughts?

Jan 29 2021, 7:43 AM · Restricted Project
JosephTremoulet added a comment to D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.

Shouldn't this also update PlatformiOSSimulator.h?

Jan 29 2021, 7:10 AM · Restricted Project

Jan 20 2021

JosephTremoulet committed rG40cd262c4339: Loop peeling: check that latch is conditional branch (authored by JosephTremoulet).
Loop peeling: check that latch is conditional branch
Jan 20 2021, 8:02 AM
JosephTremoulet closed D94995: Loop peeling: check that latch is conditional branch.
Jan 20 2021, 8:02 AM · Restricted Project
JosephTremoulet added a comment to D94995: Loop peeling: check that latch is conditional branch.

Could you also add the switch test case from PR48812?

Jan 20 2021, 6:39 AM · Restricted Project
JosephTremoulet updated the diff for D94995: Loop peeling: check that latch is conditional branch.
  • Add testcase from PR48812
Jan 20 2021, 6:39 AM · Restricted Project
JosephTremoulet added inline comments to D94995: Loop peeling: check that latch is conditional branch.
Jan 20 2021, 5:38 AM · Restricted Project
JosephTremoulet updated the diff for D94995: Loop peeling: check that latch is conditional branch.
  • Match comment to code
Jan 20 2021, 5:33 AM · Restricted Project

Jan 19 2021

JosephTremoulet added inline comments to D94995: Loop peeling: check that latch is conditional branch.
Jan 19 2021, 1:50 PM · Restricted Project
JosephTremoulet updated the diff for D94995: Loop peeling: check that latch is conditional branch.
  • Cast the terminator, not the block
Jan 19 2021, 1:49 PM · Restricted Project
JosephTremoulet added inline comments to D94995: Loop peeling: check that latch is conditional branch.
Jan 19 2021, 1:27 PM · Restricted Project
JosephTremoulet added a comment to D94995: Loop peeling: check that latch is conditional branch.

This is meant to address a regression from rG7f69860243e8, which moved a check for whether dynamic cast to BranchInst succeeds in UnrollLoop from before to after the call to peelLoop. Adding a check to canPeel seemed like the most logical option to me.

Jan 19 2021, 12:52 PM · Restricted Project
JosephTremoulet added reviewers for D94995: Loop peeling: check that latch is conditional branch: skatkov, Meinersbur, fhahn.
Jan 19 2021, 12:50 PM · Restricted Project
JosephTremoulet requested review of D94995: Loop peeling: check that latch is conditional branch.
Jan 19 2021, 12:49 PM · Restricted Project

Jan 14 2021

JosephTremoulet committed rG85dfcaadc5f0: [LLDB] MinidumpParser: Prefer executable module even at higher address (authored by JosephTremoulet).
[LLDB] MinidumpParser: Prefer executable module even at higher address
Jan 14 2021, 10:18 AM
JosephTremoulet closed D94629: [LLDB] MinidumpParser: Prefer executable module even at higher address.
Jan 14 2021, 10:18 AM · Restricted Project

Jan 13 2021

JosephTremoulet updated the diff for D94629: [LLDB] MinidumpParser: Prefer executable module even at higher address.
  • Fix comment
Jan 13 2021, 12:58 PM · Restricted Project
JosephTremoulet added reviewers for D94629: [LLDB] MinidumpParser: Prefer executable module even at higher address: clayborg, labath.
Jan 13 2021, 12:54 PM · Restricted Project
JosephTremoulet requested review of D94629: [LLDB] MinidumpParser: Prefer executable module even at higher address.
Jan 13 2021, 12:54 PM · Restricted Project

Nov 19 2020

JosephTremoulet added inline comments to D80344: [Windows SEH]: HARDWARE EXCEPTION HANDLING (MSVC -EHa) - Part 1.
Nov 19 2020, 11:35 AM · Restricted Project, Restricted Project

Oct 30 2020

JosephTremoulet committed rGd20aa7ca4221: [lldb] Report old modules from ModuleList::ReplaceEquivalent (authored by JosephTremoulet).
[lldb] Report old modules from ModuleList::ReplaceEquivalent
Oct 30 2020, 12:14 PM
JosephTremoulet committed rG61bfc703c3d3: [lldb] GetSharedModule: Collect old modules in SmallVector (authored by JosephTremoulet).
[lldb] GetSharedModule: Collect old modules in SmallVector
Oct 30 2020, 12:14 PM
JosephTremoulet closed D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.
Oct 30 2020, 12:14 PM · Restricted Project
JosephTremoulet closed D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.
Oct 30 2020, 12:14 PM · Restricted Project
JosephTremoulet added a comment to D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.

OK, I believe this is correct now.

Oct 30 2020, 11:08 AM · Restricted Project
JosephTremoulet updated the diff for D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.
  • Ignore old modules not in target list
Oct 30 2020, 11:06 AM · Restricted Project
JosephTremoulet added inline comments to D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.
Oct 30 2020, 9:55 AM · Restricted Project
JosephTremoulet updated the diff for D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.
  • Expand logging as suggested in D89157
Oct 30 2020, 9:51 AM · Restricted Project

Oct 29 2020

JosephTremoulet added a comment to D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.

But then you get to a point where you shouldn't really have multiple modules replacing a single one so you aren't really sure what to do about it. That part makes me a little uneasy.

Oct 29 2020, 11:56 AM · Restricted Project
JosephTremoulet added a comment to D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.

Thanks for the review!

Oct 29 2020, 7:15 AM · Restricted Project

Oct 28 2020

JosephTremoulet added a comment to D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.

I'd been hoping to get this bugfix into 11.0.1, but it (and D89156, which is just some cleanup that occurred to me while working on this code) have been stalled for a few weeks, and I don't have any insight into the reason. If there's anything i can do to help either one along, please let me know. One idea I had is that I could rebase this on master so it doesn't depend on the other, would that help?

Oct 28 2020, 6:20 AM · Restricted Project

Oct 21 2020

JosephTremoulet added a comment to D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.

Ping

Oct 21 2020, 5:30 AM · Restricted Project

Oct 16 2020

JosephTremoulet committed rGd30797b4041f: [lldb] Minidump: check for .text hash match with directory (authored by JosephTremoulet).
[lldb] Minidump: check for .text hash match with directory
Oct 16 2020, 6:33 AM
JosephTremoulet closed D89155: [lldb] Minidump: check for .text hash match with directory.
Oct 16 2020, 6:33 AM · Restricted Project

Oct 13 2020

JosephTremoulet added a comment to D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.

IIUC, the problem with ReplaceModule will get fixed in a dependent patch, right? So the last bit of this patch will get cleaned up by that change. If that's right, then this LGTM.

Oct 13 2020, 7:21 PM · Restricted Project
JosephTremoulet added inline comments to D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.
Oct 13 2020, 1:26 PM · Restricted Project
JosephTremoulet added a reviewer for D89156: [lldb] GetSharedModule: Collect old modules in SmallVector: jingham.
Oct 13 2020, 1:25 PM · Restricted Project
JosephTremoulet added a comment to D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.
Oct 13 2020, 1:20 PM · Restricted Project
JosephTremoulet updated the diff for D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.
  • Comment new parameter
Oct 13 2020, 1:15 PM · Restricted Project

Oct 10 2020

JosephTremoulet added a comment to D89155: [lldb] Minidump: check for .text hash match with directory.

Thanks for the speedy review! I've updated it to include a testcase that shows the problem you described, and include the fix you suggested.

Oct 10 2020, 9:58 AM · Restricted Project
JosephTremoulet updated the diff for D89155: [lldb] Minidump: check for .text hash match with directory.
  • Handle finding wrong version before right one
Oct 10 2020, 9:57 AM · Restricted Project

Oct 9 2020

JosephTremoulet added a reviewer for D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent: clayborg.
Oct 9 2020, 12:24 PM · Restricted Project
JosephTremoulet added reviewers for D89155: [lldb] Minidump: check for .text hash match with directory: labath, clayborg.
Oct 9 2020, 12:21 PM · Restricted Project
JosephTremoulet added a reviewer for D89156: [lldb] GetSharedModule: Collect old modules in SmallVector: JDevlieghere.
Oct 9 2020, 12:19 PM · Restricted Project
JosephTremoulet requested review of D89157: [lldb] Report old modules from ModuleList::ReplaceEquivalent.
Oct 9 2020, 12:16 PM · Restricted Project
JosephTremoulet requested review of D89156: [lldb] GetSharedModule: Collect old modules in SmallVector.
Oct 9 2020, 12:15 PM · Restricted Project
JosephTremoulet requested review of D89155: [lldb] Minidump: check for .text hash match with directory.
Oct 9 2020, 12:14 PM · Restricted Project

Sep 23 2020

JosephTremoulet committed rG4a55c98fa7be: [lldb] Normalize paths in new test (authored by JosephTremoulet).
[lldb] Normalize paths in new test
Sep 23 2020, 12:42 PM
JosephTremoulet committed rG20f84257ac4a: [lldb] Fix GetRemoteSharedModule fallback logic (authored by JosephTremoulet).
[lldb] Fix GetRemoteSharedModule fallback logic
Sep 23 2020, 6:01 AM
JosephTremoulet closed D88099: [lldb] Fix GetRemoteSharedModule fallback logic.
Sep 23 2020, 6:01 AM · Restricted Project

Sep 22 2020

JosephTremoulet added a reviewer for D88099: [lldb] Fix GetRemoteSharedModule fallback logic: jasonmolenda.
Sep 22 2020, 7:29 AM · Restricted Project
JosephTremoulet requested review of D88099: [lldb] Fix GetRemoteSharedModule fallback logic.
Sep 22 2020, 7:27 AM · Restricted Project

Aug 31 2020

JosephTremoulet added a comment to D86863: [EarlyCSE] Verify hash code in regression tests.

Yeah, the potential for quadratic explosion is why I didn't hook this flag up to expensive checks when I added it. It occurs to me now that if we want, we could presumably have some cutoff counter so that after inserting 300 instructions or whatever limit is reasonable, we start hashing normally. We'd have to empty the table and repopulate it with the normal hash when we cut over, but that should be doable I think (it's similar to what the table does internally when it grows).

Aug 31 2020, 11:07 AM · Restricted Project

Aug 26 2020

JosephTremoulet added a comment to D86417: [lldb] do not propagate eTrapHandlerFrame repeatedly.

To clarify, the failure did not reproduce for me in the SUSE 15.02 container. I don't know what I'm doing differently. To create the environment, I just did docker run ... opensuse/leap:15.2, and then zypper in gcc-c++ python3-devel inside the container.

Aug 26 2020, 9:52 AM · Restricted Project
JosephTremoulet added a comment to D86417: [lldb] do not propagate eTrapHandlerFrame repeatedly.

FWIW, I tried running the test in an SUSE 15.2 docker container (on an Ubuntu 18.04 host), and here's what I'm seeing. raise and abort indeed do not indicate that they had the S set in the augmentation:

Aug 26 2020, 8:38 AM · Restricted Project
JosephTremoulet added a comment to D86417: [lldb] do not propagate eTrapHandlerFrame repeatedly.

eh_frame augmented UnwindPlan:
...
This UnwindPlan is for a trap handler function: yes.

Aug 26 2020, 7:53 AM · Restricted Project

Aug 25 2020

JosephTremoulet added a comment to D86417: [lldb] do not propagate eTrapHandlerFrame repeatedly.

And its parent 'raise' is set so as well because of 'GetNextFrame()->m_frame_type == eTrapHandlerFrame '.

Aug 25 2020, 7:56 AM · Restricted Project

May 12 2020

JosephTremoulet added a reviewer for D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form.: tentzen.
May 12 2020, 6:52 PM · Restricted Project

Feb 10 2020

JosephTremoulet accepted D74285: [EarlyCSE] avoid crashing when detecting min/max/abs patterns (PR41083).

LGTM, thanks.

Feb 10 2020, 2:06 PM · Restricted Project

Dec 4 2019

JosephTremoulet committed rG95b2e516bd3e: Change Target::FindBreakpointsByName to return Expected<vector> (authored by JosephTremoulet).
Change Target::FindBreakpointsByName to return Expected<vector>
Dec 4 2019, 7:03 AM
JosephTremoulet closed D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
Dec 4 2019, 7:03 AM · Restricted Project

Dec 3 2019

JosephTremoulet added inline comments to D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
Dec 3 2019, 9:37 AM · Restricted Project
JosephTremoulet updated the diff for D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
  • Use invalid_argument error code
Dec 3 2019, 9:37 AM · Restricted Project
JosephTremoulet retitled D70907: Change Target::FindBreakpointsByName to return Expected<vector> from Change Target::FindBreakpointsByName to use a vector to Change Target::FindBreakpointsByName to return Expected<vector>.
Dec 3 2019, 8:14 AM · Restricted Project
JosephTremoulet updated the diff for D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
  • Change signature to return Expected<vector<BreakpointSP>>
Dec 3 2019, 8:04 AM · Restricted Project

Dec 2 2019

JosephTremoulet added inline comments to D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
Dec 2 2019, 10:26 AM · Restricted Project
JosephTremoulet added reviewers for D70907: Change Target::FindBreakpointsByName to return Expected<vector>: jingham, JDevlieghere.
Dec 2 2019, 8:05 AM · Restricted Project
JosephTremoulet created D70907: Change Target::FindBreakpointsByName to return Expected<vector>.
Dec 2 2019, 8:05 AM · Restricted Project