Page MenuHomePhabricator

DiamondLovesYou (Richard Diamond)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 23 2014, 2:14 PM (457 w, 5 d)

Recent Activity

Mar 28 2020

DiamondLovesYou committed rG4bf015c035e4: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space… (authored by DiamondLovesYou).
[AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space…
Mar 28 2020, 11:58 PM
DiamondLovesYou closed D75471: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences..
Mar 28 2020, 11:58 PM · Restricted Project

Mar 23 2020

DiamondLovesYou added a comment to D75471: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences..

Sorry for the delay; yes this is still active.

Mar 23 2020, 12:33 PM · Restricted Project
DiamondLovesYou updated the diff for D75471: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences..

Clean up the test.

Mar 23 2020, 12:33 PM · Restricted Project

Mar 9 2020

DiamondLovesYou added a comment to D75462: [mem2reg] Enhance to ignore @llvm.assume(icmp ne null) uses..

While I see how this is generally useful, I fear the implementation goes in the wrong direction.
What I mean is that we are moving away from instruction-based encodings for assume, see for example D74209.
What we need here is basically D73832.

@Tyker @lebedev.ri Maybe lifetime markers are the second use case for the "drop users" interface (D73404).

Mar 9 2020, 12:58 PM · Restricted Project, Restricted Project

Mar 2 2020

DiamondLovesYou updated the diff for D75471: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences..

Fix CI issue ("no CHECK line").

Mar 2 2020, 11:36 AM · Restricted Project
DiamondLovesYou created D75471: [AlignmentFromAssumptions] Fix a SCEV assertion resulting from address space differences..
Mar 2 2020, 10:20 AM · Restricted Project
DiamondLovesYou created D75462: [mem2reg] Enhance to ignore @llvm.assume(icmp ne null) uses..
Mar 2 2020, 8:29 AM · Restricted Project, Restricted Project

Sep 15 2018

DiamondLovesYou updated the diff for D51963: [Polly] Really fix Windows builds..

Update the unit tests to work with the changes in this patch and the changes from upstream.

Sep 15 2018, 11:13 PM · Restricted Project

Sep 13 2018

DiamondLovesYou accepted D52054: Add missing MC dependency to llvm-exegesis/CMakeLists.txt.

Indeed; discovered but only just before class. Thanks!

Sep 13 2018, 1:40 PM
DiamondLovesYou abandoned D51984: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

If you add this to your patch here, the Clang patch should work as I've suggested:

diff --git a/cmake/modules/LLVM-Config.cmake b/cmake/modules/LLVM-Config.cmake
index 8eabddc7377..a306e41f26d 100644
--- a/cmake/modules/LLVM-Config.cmake
+++ b/cmake/modules/LLVM-Config.cmake
@@ -244,6 +244,9 @@ function(llvm_map_components_to_libnames out_libs)
           list(APPEND expanded_components "LLVM${t}Info")
         endif()
       endforeach(t)
+    elseif( c STREQUAL "Polly")
+      # LLVMPolly is the Polly loadable module target, the static archive is just Polly
+      list(APPEND expanded_components "${c}")
     else( NOT idx LESS 0 )
       # Canonize the component name:
       string(TOUPPER "${c}" capitalized)

It is unfortunate that Polly doesn't match the naming conventions of other LLVM components, but we have a lot of special case handling for this kind of thing anyways.

Sep 13 2018, 11:16 AM
DiamondLovesYou updated the summary of D51963: [Polly] Really fix Windows builds..
Sep 13 2018, 10:26 AM · Restricted Project

Sep 12 2018

DiamondLovesYou added a comment to D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

After line 18 in this file you could do something like:

if(WITH_POLLY)
list(APPEND LLVM_LINK_COMPONENTS Polly)
endif()

Then you can get rid of the target_link_libraries call.

Sep 12 2018, 4:21 PM · Restricted Project
DiamondLovesYou added a comment to D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

After line 18 in this file you could do something like:

if(WITH_POLLY)
list(APPEND LLVM_LINK_COMPONENTS Polly)
endif()

Then you can get rid of the target_link_libraries call.

Sep 12 2018, 2:03 PM · Restricted Project
DiamondLovesYou added a comment to D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

I don’t think this is the right solution. The build system knows what components are in the dylib and should remove them from the list of libraries linked individually. You should be able to make Polly behave like an LLVM component, then tools don’t need to care if the dylib is used or not.

That's not true if target_link_libraries(${target} _whatever_ ${libs}) is used. That function will pull in all of each of ${libs}' dependencies, which causes problems because then, eg, bugpoint will then be linked with libLLVM.so (as expected) AND libPolly.a (assuming BUILD_SHARED_MODULES is false) AND then a bunch of LLVM components. The LLVM components (including Polly) will then conflict with libLLVM.so.

Polly already enjoys status as an LLVM component. No effort was necessary to include Polly in libLLVM.so for example.

Sep 12 2018, 1:42 PM · Restricted Project
DiamondLovesYou added a comment to D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

I don’t think this is the right solution. The build system knows what components are in the dylib and should remove them from the list of libraries linked individually. You should be able to make Polly behave like an LLVM component, then tools don’t need to care if the dylib is used or not.

Sep 12 2018, 1:39 PM · Restricted Project
DiamondLovesYou updated the diff for D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..
  • Fix cmake warning
Sep 12 2018, 7:46 AM · Restricted Project
DiamondLovesYou updated the diff for D51984: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..

Fix cmake warning

Sep 12 2018, 7:45 AM
DiamondLovesYou created D51986: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..
Sep 12 2018, 7:23 AM · Restricted Project
DiamondLovesYou created D51984: Fixes for `LLVM_LINK_LLVM_DYLIB` && Polly..
Sep 12 2018, 7:20 AM

Sep 11 2018

DiamondLovesYou abandoned D51904: [Polly] Fix the build for non-`MSVC` Windows targets..

See D51963.

Sep 11 2018, 6:47 PM
DiamondLovesYou created D51963: [Polly] Really fix Windows builds..
Sep 11 2018, 6:43 PM · Restricted Project

Sep 10 2018

DiamondLovesYou created D51904: [Polly] Fix the build for non-`MSVC` Windows targets..
Sep 10 2018, 6:41 PM

Sep 6 2018

DiamondLovesYou abandoned D51634: Define PATH_MAX if missing..

Thanks for the comments, everyone. This was originally submitted to fix a rust-lang buildbot, which I've learned is based on CentOS 5.5 (yes). Anyhow, I've fixed the issue on that particular buildbot by defining PATH_MAX in C(XX)FLAGS. Thus this patch isn't needed anymore. Thanks again.

Sep 6 2018, 9:41 AM

Sep 4 2018

DiamondLovesYou created D51634: Define PATH_MAX if missing..
Sep 4 2018, 8:12 AM

Jan 15 2016

DiamondLovesYou accepted D15986: llvm-config: handle BUILD_SHARED_LIBS correctly.

LGTM

Jan 15 2016, 2:00 PM

Jan 5 2016

DiamondLovesYou accepted D15033: tools/llvm-config: improve shared library support.

LGTM

Jan 5 2016, 10:13 PM

Dec 14 2015

DiamondLovesYou added a comment to D15033: tools/llvm-config: improve shared library support.

Anyway, I don't want to block the primary change with side debate, so forget this for now please.

Dec 14 2015, 5:24 PM
DiamondLovesYou added a comment to D15033: tools/llvm-config: improve shared library support.
In D15033#302259, @axw wrote:

It looks like if LLVM is built with LLVM_LINK_LLVM_DYLIB=ON and --link-static is provided and the static archives are removed, llvm-config doesn't error and still prints the shared lib with --libs.

I've updated it to cater for this. It's a bit more complicated in order to keep current behaviour.

I'd prefer if we didn't do this "if static exists use, otherwise use shared", and rather just use whatever the installation is supposed to as according to LLVM_LINK_LLVM_DYLIB. Richard, if you have no objections, I'll change it to do that.

Dec 14 2015, 4:05 PM

Nov 27 2015

DiamondLovesYou added a comment to D15033: tools/llvm-config: improve shared library support.

It looks like if LLVM is built with LLVM_LINK_LLVM_DYLIB=ON and --link-static is provided and the static archives are removed, llvm-config doesn't error and still prints the shared lib with --libs.

Nov 27 2015, 12:21 PM

Nov 23 2015

DiamondLovesYou added a comment to D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..
In D12338#245398, @jfb wrote:

@jyasskin I took a look at implementing what we discussed, and it's quite a bit uglier than I though it would be:

  • We want the same value that factors into ATOMIC_*_LOCK_FREE, which is MaxAtomicInlineWidth from tools/clang/lib/Basic/Targets.cpp (each Target should define a value there, or gets 0 by default).

Richard and I don't think you want that value. On x86-64, the maximum width here is actually 128 bits, but you want to split loads down to 64 bits.

  • We can pass this to the backend through LLVM's TargetOptions, which clang's BackendUtil.cpp can initialize.
  • AtomicExpandPass has a TargetMachine, which has TargetOptions.

This will work for code that come straight from C++, but won't work for code that only uses opt: clang has the information we need, and LLVM doesn't. This is pretty much something that should be in the DataLayout instead, which is a *very* involved change! WDYT? Am I missing something obvious?

You're probably right, but I don't know enough about the backends to be sure. It does seem like the backend should know the widths of atomics it supports.

Nov 23 2015, 9:01 AM

Nov 22 2015

DiamondLovesYou retitled D14913: Fix a use-after-free in `llvm-config`. from to Fix a use-after-free in `llvm-config`..
Nov 22 2015, 8:25 PM

Nov 9 2015

DiamondLovesYou retitled D14523: Fix mingw targets. Bandaid for r252532's buildbot brakage. from to Fix mingw targets. Bandaid for r252532's buildbot brakage..
Nov 9 2015, 5:01 PM

Nov 7 2015

DiamondLovesYou updated the diff for D13198: Fix `llvm-config` to adapt to the install environment..

Fixes for recent trunk changes.

Nov 7 2015, 2:35 PM

Nov 6 2015

DiamondLovesYou added inline comments to D13198: Fix `llvm-config` to adapt to the install environment..
Nov 6 2015, 8:12 AM
DiamondLovesYou updated the diff for D13198: Fix `llvm-config` to adapt to the install environment..

Fix compile issue.

Nov 6 2015, 8:11 AM

Nov 4 2015

DiamondLovesYou updated the diff for D13198: Fix `llvm-config` to adapt to the install environment..

Mac puts the package revision before the extension.

Nov 4 2015, 10:52 PM

Nov 2 2015

DiamondLovesYou added a comment to D13198: Fix `llvm-config` to adapt to the install environment..
Nov 2 2015, 2:09 PM

Oct 30 2015

DiamondLovesYou added a comment to D13198: Fix `llvm-config` to adapt to the install environment..

Bump.

Oct 30 2015, 7:14 PM

Sep 27 2015

DiamondLovesYou abandoned D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..

I've created a better patch similar to this one: http://reviews.llvm.org/D13198.

Sep 27 2015, 12:26 AM
DiamondLovesYou retitled D13198: Fix `llvm-config` to adapt to the install environment. from to Fix `llvm-config` to adapt to the install environment..
Sep 27 2015, 12:25 AM

Sep 10 2015

DiamondLovesYou added a comment to D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..

Bump. Could I get someone's attention to review this? I'd like to get it accepted.

Sep 10 2015, 9:27 AM

Sep 6 2015

DiamondLovesYou added a reviewer for D12607: [ExecutionEngine] Add to the C API possibility to create custom SectionMemoryManager: DiamondLovesYou.
Sep 6 2015, 7:23 PM

Aug 31 2015

DiamondLovesYou added inline comments to D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..
Aug 31 2015, 2:41 PM
DiamondLovesYou updated the diff for D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..

Added tests for the other atomic orderings.

Aug 31 2015, 2:34 PM
DiamondLovesYou added a comment to D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..
Aug 31 2015, 2:22 PM
DiamondLovesYou added a comment to D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..
Aug 31 2015, 2:21 PM
DiamondLovesYou updated the diff for D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..

Fix comments.

Aug 31 2015, 2:21 PM
DiamondLovesYou added a comment to D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..
Aug 31 2015, 7:15 AM

Aug 29 2015

DiamondLovesYou added a comment to D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 29 2015, 3:33 PM
DiamondLovesYou added inline comments to D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 29 2015, 3:32 PM
DiamondLovesYou updated the diff for D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic..

Unconditionally make the initial load atomic and fix the resulting X86 test failures.

Aug 29 2015, 3:26 PM

Aug 25 2015

DiamondLovesYou retitled D12338: Make `llvm::expandAtomicRMWToCmpXchg`'s initial load atomic. from to Add a boolean parameter to make the initial load atomic..
Aug 25 2015, 2:44 PM

Aug 22 2015

DiamondLovesYou updated the diff for D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..

Make this patch do the Right Thing on Windows. Also fix a typo in a comment.

Aug 22 2015, 2:48 PM
DiamondLovesYou updated the diff for D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 22 2015, 1:37 AM

Aug 21 2015

DiamondLovesYou added inline comments to D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 21 2015, 4:01 PM

Aug 7 2015

DiamondLovesYou requested review of D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 7 2015, 8:33 AM
DiamondLovesYou planned changes to D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 7 2015, 8:32 AM
DiamondLovesYou retitled D11835: Make `llvm-config` work when static versions of LLVM's components aren't installed. from to Make `llvm-config` work when static versions of LLVM's components aren't installed..
Aug 7 2015, 8:32 AM

Aug 6 2015

DiamondLovesYou retitled D11804: Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg` without breaking the build where X86 isn't enabled. from to Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg` without breaking the build where X86 isn't enabled..
Aug 6 2015, 8:56 AM
DiamondLovesYou abandoned D11783: Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg`..
Aug 6 2015, 8:53 AM

Aug 5 2015

DiamondLovesYou retitled D11783: Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg`. from to Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg`..
Aug 5 2015, 2:46 PM
DiamondLovesYou abandoned D10349: When stripping debug info, also rewrite @llvm.debugtrap to @llvm.trap..
Aug 5 2015, 1:46 PM

Jul 24 2015

DiamondLovesYou updated D11422: Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function..
Jul 24 2015, 1:12 PM
DiamondLovesYou updated the diff for D11422: Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function..

Addressed JF's feedback. Also made expandAtomicRMWToCmpXchg delegate NewLoaded && Successs value to the callback function.

Jul 24 2015, 12:59 PM

Jul 22 2015

DiamondLovesYou retitled D11422: Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function. from to Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function..
Jul 22 2015, 11:07 AM

Jul 21 2015

DiamondLovesYou added a comment to D11392: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..

I almost forgot, the original patch was here.

Jul 21 2015, 1:23 PM
DiamondLovesYou updated D11392: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..
Jul 21 2015, 11:41 AM
DiamondLovesYou retitled D11392: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components. from to Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..
Jul 21 2015, 10:33 AM

Jul 7 2015

DiamondLovesYou updated the diff for D10716: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..

Restructure in response to JF's comments.

Jul 7 2015, 2:47 PM

Jun 30 2015

DiamondLovesYou updated the diff for D10716: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..

Fix a comment.

Jun 30 2015, 5:19 PM

Jun 24 2015

DiamondLovesYou retitled D10716: Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components. from to Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components..
Jun 24 2015, 3:53 PM
DiamondLovesYou added a comment to D10349: When stripping debug info, also rewrite @llvm.debugtrap to @llvm.trap..

Seems odd, why not just remove it since it's supposed to be "for a debugger"

(For the record, I have no dog in this show, just asking about the logic.)

-eric

Jun 24 2015, 2:06 PM

Jun 9 2015

DiamondLovesYou retitled D10349: When stripping debug info, also rewrite @llvm.debugtrap to @llvm.trap. from to When stripping debug info, also rewrite @llvm.debugtrap to @llvm.trap..
Jun 9 2015, 4:00 PM

Apr 5 2015

DiamondLovesYou added inline comments to D8555: bugpoint Enhancement..
Apr 5 2015, 4:35 PM
DiamondLovesYou updated the diff for D8555: bugpoint Enhancement..

Fixed JF's comments.

Apr 5 2015, 4:35 PM

Mar 23 2015

DiamondLovesYou retitled D8555: bugpoint Enhancement. from to bugpoint Enhancement..
Mar 23 2015, 10:33 AM

Mar 3 2015

DiamondLovesYou updated the diff for D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..

Fix use of an incremental diff.

Mar 3 2015, 1:43 PM

Feb 23 2015

DiamondLovesYou updated the diff for D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..

Fix a comment from the last patchset.

Feb 23 2015, 6:39 PM

Feb 18 2015

DiamondLovesYou updated the diff for D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..

Addressed JF's comments.

Feb 18 2015, 10:33 AM
DiamondLovesYou updated D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..
Feb 18 2015, 9:34 AM
DiamondLovesYou added a comment to D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..

No tests?

Feb 18 2015, 7:32 AM
DiamondLovesYou updated D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..
Feb 18 2015, 7:11 AM

Feb 17 2015

DiamondLovesYou retitled D7713: Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded. from to Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded..
Feb 17 2015, 7:37 PM