Page MenuHomePhabricator

steven_wu (Steven Wu)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 4 2014, 3:46 PM (245 w, 5 d)

Recent Activity

Thu, Jul 18

steven_wu committed rGdac7fca530f7: Remove the static initialize introduced in r365099 (authored by steven_wu).
Remove the static initialize introduced in r365099
Thu, Jul 18, 2:05 PM
steven_wu committed rL366496: Remove the static initialize introduced in r365099.
Remove the static initialize introduced in r365099
Thu, Jul 18, 2:04 PM
steven_wu closed D64873: Remove the static initialize introduced in r365099.
Thu, Jul 18, 2:04 PM · Restricted Project
steven_wu added a comment to D64873: Remove the static initialize introduced in r365099.

ping.

Thu, Jul 18, 12:24 PM · Restricted Project

Wed, Jul 17

steven_wu created D64873: Remove the static initialize introduced in r365099.
Wed, Jul 17, 10:45 AM · Restricted Project

Tue, Jul 16

steven_wu added a comment to D63735: [MachOObjectFile]Added Valid Architecture Function.

This adds an unnecessary static initializer to the MachOObject.cpp. Can you move the array of validArchs into filescope? You can declare it in getValidArchs() and use getValidArchs() in isValidArchs.

I was hoping that std::array wouldn't necessitate a static initializer, since it's just supposed to be a zero-cost wrapper around a C array.

Tue, Jul 16, 11:35 AM · Restricted Project
steven_wu added a comment to D63735: [MachOObjectFile]Added Valid Architecture Function.

This adds an unnecessary static initializer to the MachOObject.cpp. Can you move the array of validArchs into filescope? You can declare it in getValidArchs() and use getValidArchs() in isValidArchs.

Tue, Jul 16, 11:17 AM · Restricted Project

Tue, Jul 9

steven_wu committed rG65f964c23eb1: Add lit.local.cfg to llvm-objdump tests (authored by steven_wu).
Add lit.local.cfg to llvm-objdump tests
Tue, Jul 9, 10:49 AM
steven_wu added a comment to D29044: Add LC_BUILD_VERSION load command.

You need to add a llvm/test/tools/llvm-objdump/lit.local.cfg that contains config.suffixes = ['.yaml'], else the .yaml files added in this change won't be run by lit.

Tue, Jul 9, 10:47 AM · Restricted Project
steven_wu committed rL365519: Add lit.local.cfg to llvm-objdump tests.
Add lit.local.cfg to llvm-objdump tests
Tue, Jul 9, 10:47 AM
steven_wu added a comment to D64197: [HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable().

This added an extra dependency from Analysis -> TransformUtils. I don't think this dependency is a good idea, so is adding preheader in analysis pass.

Tue, Jul 9, 10:26 AM · Restricted Project

Jun 18 2019

steven_wu accepted D63444: [ThinLTO] Optimize write-only globals out.

LGTM.

Jun 18 2019, 8:30 AM · Restricted Project

Jun 17 2019

steven_wu added a comment to D63444: [ThinLTO] Optimize write-only globals out.

Sounds like an interesting optimization. Is the global storage (from the other module) also eliminated in this case? If so, can you add a testcase for that?

Jun 17 2019, 10:56 AM · Restricted Project

Jun 11 2019

steven_wu accepted D62935: [ThinLTO][LTO][Legacy] Fix dependent libraries support by adding querying of the IRSymtab.

SGTM

Jun 11 2019, 8:23 AM · Restricted Project

Jun 10 2019

steven_wu added a comment to D62935: [ThinLTO][LTO][Legacy] Fix dependent libraries support by adding querying of the IRSymtab.

We should look at either merging the implementations or providing an api function that provides access to the "llvm.linker.options" named metadata via the IRSymtab. It may not be possible to merge the implementations because in COFF and MACHO the representation of dependent libraries is a string of command line options; whereas, the ELF representation is an array of library strings. This is because for COFF and MACHO there is basically only one linker for each file format so the command line format is fixed. For ELF there are a greater variety of linkers, so I just pass the library strings through to the linker, without processing them into command line arguments, and it is deferred to the linker to interpret the library strings.

Jun 10 2019, 4:02 PM · Restricted Project

Jun 7 2019

steven_wu added a comment to D62935: [ThinLTO][LTO][Legacy] Fix dependent libraries support by adding querying of the IRSymtab.

This is ELF specific and miss the initial RFC so there is quite some reading to catch up. Should we merge the MachO implementation together with the ELF one? Once you commit this, you might want to file a bug report on me to catch up on the macho side.

Jun 7 2019, 9:05 AM · Restricted Project

Jun 4 2019

steven_wu accepted D62711: [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar.

LGTM.

Jun 4 2019, 8:15 AM · Restricted Project

May 28 2019

steven_wu updated the diff for D59945: [ObjCMetadata] Add support for reading Objective-C metadata.

Rebase the patch to TOT. Ping again.

May 28 2019, 11:11 AM · Restricted Project

May 14 2019

steven_wu added inline comments to D60162: [ThinLTO] Add module flags for TargetLibraryInfoImpl and use in LTO backends.
May 14 2019, 1:49 PM · Restricted Project, Restricted Project
steven_wu added a comment to D60162: [ThinLTO] Add module flags for TargetLibraryInfoImpl and use in LTO backends.

Thanks for doing this. I think module flag is a good idea. Some comments inline.

May 14 2019, 9:35 AM · Restricted Project, Restricted Project

May 10 2019

steven_wu added a comment to D61627: [clang driver] Allow -fembed-bitcode combined with -mno-red-zone.

Why are you interested in expending this list?

I have a (kernel) that is compiled with -mno-red-zone and -mcmodel=large which I want to compile with -fembed-bitcode for a debugging tool that needs the bitcode.

But I can carry these patches locally for now.

May 10 2019, 8:41 AM · Restricted Project

May 7 2019

steven_wu added a comment to D61627: [clang driver] Allow -fembed-bitcode combined with -mno-red-zone.

Like I said, I am not worried that -mno-red-zone itself changes the ABI. As long as LLVM still respect the attribute the same way, it is fine. I want to consult Tim to make sure we can support re-targeting no red zone from armv7k to arm64_32.

May 7 2019, 11:29 AM · Restricted Project
steven_wu added a comment to D61627: [clang driver] Allow -fembed-bitcode combined with -mno-red-zone.

@steven_wu - yeah, -mred-zone, -mno-red-zone does impact the ABI, at least on x86_64. It changes the way that the arguments are spilled and the stack layout.

May 7 2019, 9:05 AM · Restricted Project
steven_wu added a comment to D61627: [clang driver] Allow -fembed-bitcode combined with -mno-red-zone.

The main concern for adding this blacklist was because of long term maintainability since the option is going to be embedded into bitcode. Looking at this specific option, I have no reason against because it doesn't affect embedded compiler flags.

May 7 2019, 8:54 AM · Restricted Project
steven_wu added a reviewer for D61627: [clang driver] Allow -fembed-bitcode combined with -mno-red-zone: t.p.northover.
May 7 2019, 8:54 AM · Restricted Project

May 2 2019

steven_wu added a comment to D61346: [CMake] Do not use libtool on Apple platforms when building LLVM with (full) LTO..

When you are manually configuring the bootstrap, I still don't think trying to bypass libtool is the correct fix because you still need to specify the correct llvm-ar to use. The default CMAKE_AR inferred by cmake will not work. Maybe it is an option to add the control to force llvm-ar if wished, then you have two options when you manually configuring bootstrap:

May 2 2019, 8:20 AM · Restricted Project

May 1 2019

steven_wu updated the diff for D59945: [ObjCMetadata] Add support for reading Objective-C metadata.

Rebase the patch and did some fixup:

May 1 2019, 9:47 AM · Restricted Project

Apr 30 2019

steven_wu added a comment to D61346: [CMake] Do not use libtool on Apple platforms when building LLVM with (full) LTO..

If you use cmake variable CLANG_ENABLE_BOOTSTRAP, it should take care of DYLD_LIBRARY_PATH so libtool is using the just built libLTO to create static library. The setup of the DYLD_LIBRARY_PATH is just below.

Apr 30 2019, 5:13 PM · Restricted Project
steven_wu added a comment to D61255: [ThinLTO] Make weak data symbols prevailing when they're visible to regular object.

I agree this doesn't look like the correct fix, especially the check !Sym.isExecutable() which doesn't look correct to me

The problem is that linkonce_odr functions and data should be IMO treated differently. The linkonce_odr linkage implies linker leaves only one copy of the symbol in the final image.
However it's not really a problem having multiple internal copies of linkonce_odr function because all copies follow one definition rule. This fact allows ThinLTO to efficiently optimize such function calls.
Situation however is different with linkonce_odr objects, because it's wrong to have multiple copies of linkonce_odr object because reads and writes supposed to access same memory will actually become
inconsistent. However there is still a nuance: if object is a compile time constant there can't be any write access to it, so we can safely internalize it.

Apr 30 2019, 1:36 PM · Restricted Project
steven_wu added a comment to D61255: [ThinLTO] Make weak data symbols prevailing when they're visible to regular object.

I don't see this happening in legacy thinLTO code generator but I need to do more digging to see what is the difference. For legacy API, the static variable is not internalized or turned into available_externally.

Apr 30 2019, 11:22 AM · Restricted Project

Apr 29 2019

steven_wu committed rG6c9f6fd11b65: [ThinLTO] Adding architecture name into saved object filename (authored by steven_wu).
[ThinLTO] Adding architecture name into saved object filename
Apr 29 2019, 2:39 PM
steven_wu committed rL359508: [ThinLTO] Adding architecture name into saved object filename.
[ThinLTO] Adding architecture name into saved object filename
Apr 29 2019, 2:38 PM
steven_wu closed D60924: [ThinLTO] Adding architecture name into saved object filename.
Apr 29 2019, 2:38 PM · Restricted Project
steven_wu added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

ping

Apr 29 2019, 10:57 AM · Restricted Project

Apr 19 2019

steven_wu updated the diff for D60924: [ThinLTO] Adding architecture name into saved object filename.

Add tests for the change. There is acutally an easy to test with llvm-lto

Apr 19 2019, 7:12 PM · Restricted Project
steven_wu added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

Is there a good way to test this?

Not currently in LLVM. It might be possible to add a test in clang repo which requires DARWIN and ld64.

Maybe we can split out the function to generate the filename, and add a unit test for that?

Apr 19 2019, 3:17 PM · Restricted Project
steven_wu added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

Is there a good way to test this?

Apr 19 2019, 2:55 PM · Restricted Project
steven_wu created D60924: [ThinLTO] Adding architecture name into saved object filename.
Apr 19 2019, 2:31 PM · Restricted Project

Apr 17 2019

steven_wu added a comment to D60516: [LTO] Add plumbing to save stats during LTO on Darwin..

forgot to save the inline comments.

Apr 17 2019, 10:51 AM · Restricted Project, Restricted Project
steven_wu accepted D60516: [LTO] Add plumbing to save stats during LTO on Darwin..

LGTM with one additional small comments

Apr 17 2019, 10:51 AM · Restricted Project, Restricted Project
steven_wu committed rG05a358cdcd55: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols (authored by steven_wu).
[ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 17 2019, 10:39 AM
steven_wu committed rL358601: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
[ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 17 2019, 10:39 AM
steven_wu closed D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Apr 17 2019, 10:39 AM · Restricted Project
steven_wu added a comment to D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Thanks Teresa and Ben for the feedback! I am landing this change.

Apr 17 2019, 10:34 AM · Restricted Project

Apr 12 2019

steven_wu added a comment to D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Sorry for the delay in replying. I was trying to understand if the upgrade path was important. Comments inline:

Hi Steven,

I missed that this work was being done - sorry.

Currently the legacy api does not require the IRSymtab to be written to the bitcode files so there is potentially a performance degradation due to this approach and the generated bitcode files will be larger, did you measure that?

The legacy API is not writing out IRSymtab but build that in memory during code generation. The only requirement change is that now data layout is required for thin LTO .

My understanding is that the on disk bitcode contains a binary representation of the IRSymtab and this is read into memory when loading the file (which is why the upgrade path is more expensive than the no-upgrade path). I am saying that currently the legacy api does not require the IRSymtab to be written to disk. Writing it may cost more time and make the input files bigger.

Apr 12 2019, 2:38 PM · Restricted Project

Apr 10 2019

steven_wu added a comment to D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Hi Steven,

I missed that this work was being done - sorry.

Currently the legacy api does not require the IRSymtab to be written to the bitcode files so there is potentially a performance degradation due to this approach and the generated bitcode files will be larger, did you measure that?

Apr 10 2019, 8:59 AM · Restricted Project

Apr 8 2019

steven_wu updated the diff for D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Add one file that was missing from previous patch

Apr 8 2019, 2:42 PM · Restricted Project
steven_wu added a comment to D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

What part of the patch caused the need to change the internalize action to do promote+internalize in one go?

Apr 8 2019, 2:11 PM · Restricted Project
steven_wu added a reviewer for D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols: dexonsmith.
Apr 8 2019, 1:48 PM · Restricted Project
steven_wu created D60421: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Apr 8 2019, 1:46 PM · Restricted Project
steven_wu added a comment to D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

I reverted this because the old thinLTO test cases need to be updated to have data layout as a requirement to use IRSymtab. I will start a separate review to address all those issues.

Apr 8 2019, 1:18 PM · Restricted Project
steven_wu added a comment to rL357931: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

I reverted this because the old thinLTO test cases need to be updated to have data layout as a requirement to use IRSymtab. I will start a separate review to address all those issues.

Apr 8 2019, 1:18 PM
steven_wu committed rGf41e70d6eb90: Revert [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols (authored by steven_wu).
Revert [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 8 2019, 11:53 AM
steven_wu committed rL357932: Revert [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Revert [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 8 2019, 11:53 AM
steven_wu committed rG8b70a5c11e08: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols (authored by steven_wu).
[ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 8 2019, 11:23 AM
steven_wu committed rL357931: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
[ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Apr 8 2019, 11:22 AM
steven_wu closed D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Apr 8 2019, 11:22 AM · Restricted Project
steven_wu updated the diff for D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Review feedback.

Apr 8 2019, 9:30 AM · Restricted Project

Apr 5 2019

steven_wu added a comment to D60302: [CodeGen][ObjC] Emit the retainRV marker as a module flag instead of named metadata..

I talked with Akira offline and we think this is probably the best approach to fix this LTO issue. I will leave others to comment if they think otherwise.

Apr 5 2019, 1:32 PM · Restricted Project, Restricted Project
steven_wu updated the diff for D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Address review feedback

Apr 5 2019, 1:28 PM · Restricted Project
steven_wu accepted D60303: [ObjC][ARC] Emit the retainRV marker as a module flag instead of named metadata..

LGTM once the clang patch is good to land.

Apr 5 2019, 12:53 PM · Restricted Project
steven_wu added inline comments to D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Apr 5 2019, 12:53 PM · Restricted Project

Apr 4 2019

steven_wu added a comment to D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
In D60226#1455485, @pcc wrote:

Also do note, I did a quick benchmark on thin-link time for libLTO.dylib. thin-link was 2.6s before the change vs. 4.0s after the change. Building IRSymtab during thin-link does introduce non-negligible overhead. It might be possible to build them async in threads to reduce the overhead.

@pcc is this surprising? Typically we should just be loading it out of the bitcode file. There are cases where it has to be rebuilt, but theoretically those should be exceptions.

Yes, we normally just load it out of the bitcode file. The irsymtab only needs to be rebuilt when the version of the producer and the consumer do not match. You might be hitting the "upgrade" path here: http://llvm-cs.pcc.me.uk/lib/Object/IRSymtab.cpp#330

This is likely. I didn't bootstrap the build. I will try again with a matching version.

Apr 4 2019, 6:09 PM · Restricted Project
steven_wu added a comment to D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
In D60226#1455485, @pcc wrote:

Also do note, I did a quick benchmark on thin-link time for libLTO.dylib. thin-link was 2.6s before the change vs. 4.0s after the change. Building IRSymtab during thin-link does introduce non-negligible overhead. It might be possible to build them async in threads to reduce the overhead.

@pcc is this surprising? Typically we should just be loading it out of the bitcode file. There are cases where it has to be rebuilt, but theoretically those should be exceptions.

Yes, we normally just load it out of the bitcode file. The irsymtab only needs to be rebuilt when the version of the producer and the consumer do not match. You might be hitting the "upgrade" path here: http://llvm-cs.pcc.me.uk/lib/Object/IRSymtab.cpp#330

Apr 4 2019, 5:05 PM · Restricted Project

Apr 3 2019

steven_wu added a comment to D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.

Also do note, I did a quick benchmark on thin-link time for libLTO.dylib. thin-link was 2.6s before the change vs. 4.0s after the change. Building IRSymtab during thin-link does introduce non-negligible overhead. It might be possible to build them async in threads to reduce the overhead.

Apr 3 2019, 12:29 PM · Restricted Project
steven_wu created D60226: [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols.
Apr 3 2019, 12:29 PM · Restricted Project

Apr 1 2019

steven_wu added a comment to D59945: [ObjCMetadata] Add support for reading Objective-C metadata.

I am not convinced that there is sufficient abstraction here to handle multiple runtimes without significant code duplication. The Mach-O and LLVM IR parsers both appear to duplicate all knowledge of the runtime's data structures, so if you wanted to add a second runtime you'd then need four classes. I would expect to see two abstraction layers:

  1. Something allowing you to specify a data structure to examine that would load it from some binary (IR, Mach-O, ELF, whatever).
  2. Something built on top of this that then queries specific runtime metadata structures.

    In clang, we support two broad families of Objective-C runtime: Apple (Legacy and Modern, with version-specific things for macOS, iOS, and so on) and GNU (including GCC, GNUstep / WinObjC, and ObjFW). These are largely orthogonal to object file formats. For example, the GNUstep runtime is widely used with both ELF and PE/COFF binaries and can be used with Mach-O (though typically only for testing). If we wanted to add support for all of these, I suspect that we'd have a code explosion.
Apr 1 2019, 9:53 AM · Restricted Project

Mar 28 2019

steven_wu added a reviewer for D59945: [ObjCMetadata] Add support for reading Objective-C metadata: theraven.
Mar 28 2019, 10:07 AM · Restricted Project
steven_wu created D59945: [ObjCMetadata] Add support for reading Objective-C metadata.
Mar 28 2019, 10:02 AM · Restricted Project

Mar 22 2019

steven_wu added a comment to D59709: [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible.

Thanks for explanation. Then the current approach in this patch LGTM. Thanks!

Mar 22 2019, 3:55 PM · Restricted Project
steven_wu added a comment to D59709: [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible.

I am not quite sure what is the semantics for ELF linker. When thinLTO picks the linkonce_odr version and promote it to weak, it is not changing the visibility. It is a later linker optimization that auto hide the linkonce_odr symbol, correct?

It is in fact ThinLTO that is changing the visibility (D43130). See the change I made to FunctionImport.cpp.

Interesting, I made that change! But I somehow remembered I got pushed back because of ELF semantics and end up implementing that in ld64 instead. Let me dig up some context and get back to you.

Are you thinking of https://reviews.llvm.org/D43361?

Mar 22 2019, 2:56 PM · Restricted Project
steven_wu added a comment to D59709: [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible.

I am not quite sure what is the semantics for ELF linker. When thinLTO picks the linkonce_odr version and promote it to weak, it is not changing the visibility. It is a later linker optimization that auto hide the linkonce_odr symbol, correct?

It is in fact ThinLTO that is changing the visibility (D43130). See the change I made to FunctionImport.cpp.

Mar 22 2019, 2:04 PM · Restricted Project
steven_wu added a comment to D59709: [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible.

I am not quite sure what is the semantics for ELF linker. When thinLTO picks the linkonce_odr version and promote it to weak, it is not changing the visibility. It is a later linker optimization that auto hide the linkonce_odr symbol, correct?

Mar 22 2019, 1:29 PM · Restricted Project

Mar 21 2019

steven_wu committed rG5a593547602b: [Object] Fix reading objects created with -fembed-bitcode-marker (authored by steven_wu).
[Object] Fix reading objects created with -fembed-bitcode-marker
Mar 21 2019, 2:02 PM
steven_wu committed rL356718: [Object] Fix reading objects created with -fembed-bitcode-marker.
[Object] Fix reading objects created with -fembed-bitcode-marker
Mar 21 2019, 2:00 PM
steven_wu closed D44373: Fix reading objects created with -fembed-bitcode-marker..
Mar 21 2019, 2:00 PM · Restricted Project
steven_wu added a comment to D44373: Fix reading objects created with -fembed-bitcode-marker..

Thanks for fixing this. LGTM.

Looks like this never actually got committed?

Mar 21 2019, 1:50 PM · Restricted Project

Mar 7 2019

steven_wu committed rGed9822928626: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic (authored by steven_wu).
[Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic
Mar 7 2019, 9:28 PM
steven_wu committed rL355663: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic.
[Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic
Mar 7 2019, 9:27 PM
steven_wu closed D59112: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic.
Mar 7 2019, 9:27 PM · Restricted Project
steven_wu created D59112: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic.
Mar 7 2019, 2:50 PM · Restricted Project

Feb 13 2019

steven_wu accepted D58122: Restore Check for Unreachable Exit Block in -Winfinite-recursion.

LGTM

Feb 13 2019, 9:18 AM · Restricted Project, Restricted Project

Feb 12 2019

steven_wu accepted D58071: Fix auto-upgrade for the new parameter to llvm.objectsize.

LGTM.

Feb 12 2019, 1:38 PM · Restricted Project

Feb 11 2019

steven_wu added a comment to D58071: Fix auto-upgrade for the new parameter to llvm.objectsize.

I talked to Erik offline. I think the upgrade tests should run on .bc file rather than text format.

Feb 11 2019, 3:38 PM · Restricted Project
steven_wu accepted D57991: [Driver][Darwin] Emit an error when using -pg on OS without support for it..

LGTM with a suggestion to make code cleaner.

Feb 11 2019, 11:02 AM · Restricted Project

Feb 7 2019

Herald added a project to D43737: Improve -Winfinite-recursion: Restricted Project.

Sorry for following up late on the patch. Removing the reachability testing for the exit block causes false positive for infinite loop cases like this:

Feb 7 2019, 11:34 AM · Restricted Project

Jan 29 2019

steven_wu committed rC352537: Fix the tests from r350970.
Fix the tests from r350970
Jan 29 2019, 12:13 PM
steven_wu committed rL352537: Fix the tests from r350970.
Fix the tests from r350970
Jan 29 2019, 12:13 PM

Jan 17 2019

steven_wu accepted D56805: mac: Correctly disable tools/lto tests when building with LLVM_ENABLE_PIC=OFF.

Not sure about gn part and if that has any impact. Otherwise, LGTM.

Jan 17 2019, 3:45 PM

Jan 11 2019

steven_wu committed rL350970: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.
[Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO
Jan 11 2019, 1:20 PM
steven_wu committed rC350970: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.
[Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO
Jan 11 2019, 1:20 PM
steven_wu closed D56608: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.
Jan 11 2019, 1:20 PM
steven_wu updated the diff for D56608: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.

Fix the comment

Jan 11 2019, 11:09 AM
steven_wu updated the diff for D56608: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.

I was planning to add a test but I am not sure how to check the file type of temporary files.

Jan 11 2019, 10:55 AM
steven_wu created D56608: [Darwin][Driver] Don't pass a file as object_path_lto during ThinLTO.
Jan 11 2019, 9:33 AM

Jan 7 2019

steven_wu added a comment to D53945: [TextAPI] TBD Reader/Writer.

Out of interest, why aren't most of the tests for this lit tests? The usual llvm way of testing stuff is to write a small llvm tool using your library (which will be useful outside of a testing context too) and then use that to write lit tests.

Looks like this is now happening (rL350341). Are most of the unit tests going to move to lit tests now?

Jan 7 2019, 10:05 AM · Restricted Project

Dec 17 2018

steven_wu added a comment to D55080: [ThinLTO] Out-of-process CodeGenerator for legacy C API.

Thanks for the clarifications. Would it be possible to utilize ThinBackendProc for this instead of a new CodeGenManager class? I.e. make a new derived version that does the index file write and spawns the local processes? The advantage is that it would start converging the implementations. And I think this could aid in refactoring suggested below to avoid duplication. Another advantage is that both LTO API's would have access to all backend implementations (in process, write indexes and exit, write indexes and use local processes, etc).

Dec 17 2018, 11:03 AM
steven_wu added inline comments to D55673: [darwin] parse the SDK settings from SDKSettings.json if it exists and pass in the -target-sdk-version to the compiler and backend.
Dec 17 2018, 10:38 AM
steven_wu accepted D55673: [darwin] parse the SDK settings from SDKSettings.json if it exists and pass in the -target-sdk-version to the compiler and backend.

Other than a small design choice commented inline, LGTM.

Dec 17 2018, 10:18 AM

Dec 13 2018

steven_wu added a comment to D55673: [darwin] parse the SDK settings from SDKSettings.json if it exists and pass in the -target-sdk-version to the compiler and backend.

See comments inline.

Dec 13 2018, 2:35 PM