jfb (JF Bastien)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 27 2014, 9:36 AM (243 w, 1 d)

Recent Activity

Mon, Sep 24

jfb added a comment to D52416: Allow FP types for atomicrmw xchg.

What does this look like with half, fp80, fp128?
Does this not change anything on other architectures?

Mon, Sep 24, 9:36 AM
jfb accepted D52414: IR: Move AtomicRMW string names into class.
Mon, Sep 24, 9:23 AM
jfb accepted D52415: Add atomicrmw operation to error messages.
Mon, Sep 24, 9:23 AM

Fri, Sep 21

jfb committed rL342759: [NFC] use bit_cast in PointerSumType.
[NFC] use bit_cast in PointerSumType
Fri, Sep 21, 11:37 AM
jfb committed rC342750: [NFC] remove unused variable.
[NFC] remove unused variable
Fri, Sep 21, 10:40 AM
jfb committed rL342750: [NFC] remove unused variable.
[NFC] remove unused variable
Fri, Sep 21, 10:40 AM
jfb added a comment to D52339: Support enums with a fixed underlying type in all language modes.
In D52339#1242086, @jfb wrote:

I think we should consider proposing this to the C committee. @aaron.ballman I can help Erik write the paper, would you be able to present it? Too tight for the upcoming meeting, but I'm guessing we have *plenty* of time for ++C17.

It's already been proposed to WG14 and is currently on the SD-3 list of features to consider for C2x. See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2008.pdf. I know Clive and am happy to point him towards this patch (when it lands) as demonstration of industry desire for the feature, in case he needs to provide updated papers.

Fri, Sep 21, 9:46 AM
jfb added inline comments to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.
Fri, Sep 21, 9:40 AM
jfb added a comment to D52339: Support enums with a fixed underlying type in all language modes.

I think we should consider proposing this to the C committee. @aaron.ballman I can help Erik write the paper, would you be able to present it? Too tight for the upcoming meeting, but I'm guessing we have *plenty* of time for ++C17.

Fri, Sep 21, 9:26 AM
jfb added inline comments to D52092: [ValueTracking] Generalize isBytewiseValue into isSplatValue.
Fri, Sep 21, 9:00 AM
jfb added a comment to D52332: [ADT] restrict bit_cast to trivially-constructible To.

Re-landed as r342739.

Fri, Sep 21, 7:33 AM
jfb committed rL342739: [ADT] restrict bit_cast to trivially-constructible To.
[ADT] restrict bit_cast to trivially-constructible To
Fri, Sep 21, 7:32 AM
jfb committed rC342734: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue
Fri, Sep 21, 6:55 AM
jfb committed rL342734: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue
Fri, Sep 21, 6:55 AM
jfb closed D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
Fri, Sep 21, 6:55 AM

Thu, Sep 20

jfb added a comment to D52332: [ADT] restrict bit_cast to trivially-constructible To.

Had to revert, this was in GCC 5.1 only. I'll fix tomorrow.

Thu, Sep 20, 10:41 PM
jfb committed rL342711: Revert "[ADT] restrict bit_cast to trivially-constructible To".
Revert "[ADT] restrict bit_cast to trivially-constructible To"
Thu, Sep 20, 10:35 PM
jfb committed rL342710: [ADT] restrict bit_cast to trivially-constructible To.
[ADT] restrict bit_cast to trivially-constructible To
Thu, Sep 20, 10:22 PM
jfb closed D52332: [ADT] restrict bit_cast to trivially-constructible To.
Thu, Sep 20, 10:22 PM
jfb committed rL342709: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue
Thu, Sep 20, 10:22 PM
jfb closed D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 20, 10:22 PM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Test i1, show it isn't handled.
Thu, Sep 20, 5:18 PM
jfb added a comment to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.

Added the negative test.

Thu, Sep 20, 5:18 PM
jfb added inline comments to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 20, 5:00 PM
jfb added inline comments to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 20, 4:59 PM
jfb created D52332: [ADT] restrict bit_cast to trivially-constructible To.
Thu, Sep 20, 4:53 PM
jfb added a comment to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.

Missing test coverage for half.

Missing test coverage here for ConstantStruct/ConstantArray/ConstantVector, although I guess the array/struct bits are covered by the clang patch. I'd like to see some coverage for vectors with unusual element sizes, though, like <i1 x 16>.

Thu, Sep 20, 3:56 PM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Add a bit more testing
Thu, Sep 20, 3:55 PM
jfb planned changes to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.

I'll add more tests soon.

Thu, Sep 20, 2:13 PM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Augment isBytewiseValue to be as powerful as clang's version. Update code that used it to handle undef merging. This captures more memcpy patterns and can generate memcpy of undef (which selection DAG later gets rid of).
  • Update comments and move Ctx down a bit.
  • Remove ref param
  • Remove extra changes, left over from clang-format
Thu, Sep 20, 2:09 PM
jfb added inline comments to D52092: [ValueTracking] Generalize isBytewiseValue into isSplatValue.
Thu, Sep 20, 1:48 PM
jfb added inline comments to D52092: [ValueTracking] Generalize isBytewiseValue into isSplatValue.
Thu, Sep 20, 12:32 PM
jfb added inline comments to D52092: [ValueTracking] Generalize isBytewiseValue into isSplatValue.
Thu, Sep 20, 11:39 AM

Tue, Sep 18

Herald added a reviewer for D32564: AArch64: compress jump tables to minimum size needed to reach destinations: javed.absar.
Tue, Sep 18, 10:41 AM

Fri, Sep 14

jfb added inline comments to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Fri, Sep 14, 3:37 PM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Remove ref param
Fri, Sep 14, 3:36 PM

Mon, Sep 10

jfb committed rL341900: NCF: use bit_cast in IntervalMap.
NCF: use bit_cast in IntervalMap
Mon, Sep 10, 9:53 PM
jfb committed rL341897: NFC: use bit_cast more in AArch64AddressingModes.
NFC: use bit_cast more in AArch64AddressingModes
Mon, Sep 10, 9:09 PM
jfb added a comment to D51888: [ADT] bit_cast: check for is_trivially_copyable more portably.

And r341867 because I committed before saving the file edit...

Mon, Sep 10, 2:44 PM
jfb committed rL341867: Fix bit_cast properly.
Fix bit_cast properly
Mon, Sep 10, 2:44 PM
jfb added a comment to D51888: [ADT] bit_cast: check for is_trivially_copyable more portably.

Extra fix in r341866 because __is_trivially_copyable is a function-like builtin, not a template.

Mon, Sep 10, 2:43 PM
jfb committed rL341866: Fix bit_cast __is_trivially_copyable.
Fix bit_cast __is_trivially_copyable
Mon, Sep 10, 2:42 PM
jfb committed rL341865: [ADT] bit_cast: check for is_trivially_copyable more portably.
[ADT] bit_cast: check for is_trivially_copyable more portably
Mon, Sep 10, 2:35 PM
This revision was not accepted when it landed; it landed in state Needs Review.
Mon, Sep 10, 2:35 PM
jfb committed rL341860: Implement -Watomic-implicit-seq-cst.
Implement -Watomic-implicit-seq-cst
Mon, Sep 10, 1:44 PM
jfb committed rC341860: Implement -Watomic-implicit-seq-cst.
Implement -Watomic-implicit-seq-cst
Mon, Sep 10, 1:44 PM
jfb closed D51084: Implement -Watomic-implicit-seq-cst.
Mon, Sep 10, 1:44 PM
jfb added a comment to D51872: isPodLike: handle tuple and array.

Let's do D51888 instead.

Mon, Sep 10, 1:38 PM
jfb created D51888: [ADT] bit_cast: check for is_trivially_copyable more portably.
Mon, Sep 10, 1:38 PM
jfb abandoned D51872: isPodLike: handle tuple and array.
Mon, Sep 10, 1:18 PM
jfb planned changes to D51872: isPodLike: handle tuple and array.
Mon, Sep 10, 1:13 PM
jfb committed rL341853: NFC: bit.h don't warn on strict aliasing for GCC <= 7.1.
NFC: bit.h don't warn on strict aliasing for GCC <= 7.1
Mon, Sep 10, 12:58 PM
jfb closed D51869: NFC: bit.h don't warn on strict aliasing for GCC <= 7.1.
Mon, Sep 10, 12:58 PM
jfb accepted D51869: NFC: bit.h don't warn on strict aliasing for GCC <= 7.1.

Assuming this is good to go since it's a build breakage. Happy to do follow-ups if you have post-commit comments.

Mon, Sep 10, 12:57 PM
jfb updated the diff for D51872: isPodLike: handle tuple and array.
  • Fix think-o.
Mon, Sep 10, 12:40 PM
jfb created D51872: isPodLike: handle tuple and array.
Mon, Sep 10, 11:37 AM
jfb planned changes to D50593: ConstantMerge: merge common initial sequences.

If you have the code-size numbers, please provide that then I can accept the patch.

Mon, Sep 10, 10:55 AM
jfb added a comment to D51869: NFC: bit.h don't warn on strict aliasing for GCC <= 7.1.

I tried this out with a few GCC and clang versions to make sure the pragma was supported by both. Seems fine.

Mon, Sep 10, 10:52 AM
jfb created D51869: NFC: bit.h don't warn on strict aliasing for GCC <= 7.1.
Mon, Sep 10, 10:52 AM
jfb added a comment to rL341741: ADT: add <bit> header, implement C++20 bit_cast, use.

@jfb I'm seeing a lot of gcc strict aliasing warnings from this:

/home/simon/LLVM/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h:362:27: required from here
/home/simon/LLVM/llvm/include/llvm/ADT/bit.h:29:40: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

return reinterpret_cast<To &>(storage);

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609

Mon, Sep 10, 10:39 AM

Sat, Sep 8

jfb committed rL341750: Revert "NFC: use bit_cast more in AArch64AddressingModes".
Revert "NFC: use bit_cast more in AArch64AddressingModes"
Sat, Sep 8, 9:54 AM
jfb committed rL341749: NFC: use bit_cast more in AArch64AddressingModes.
NFC: use bit_cast more in AArch64AddressingModes
Sat, Sep 8, 9:48 AM

Fri, Sep 7

jfb committed rL341742: Fix typo in previous commit.
Fix typo in previous commit
Fri, Sep 7, 9:10 PM
jfb committed rL341741: ADT: add <bit> header, implement C++20 bit_cast, use.
ADT: add <bit> header, implement C++20 bit_cast, use
Fri, Sep 7, 8:58 PM
jfb closed D51693: ADT: add <bit> header, implement C++20 bit_cast, use.
Fri, Sep 7, 8:57 PM
jfb reopened D51693: ADT: add <bit> header, implement C++20 bit_cast, use.
Fri, Sep 7, 8:57 PM
jfb updated the diff for D51693: ADT: add <bit> header, implement C++20 bit_cast, use.
  • Fix is_trivially_copytable, and ARM build.
Fri, Sep 7, 8:57 PM
jfb updated subscribers of D51693: ADT: add <bit> header, implement C++20 bit_cast, use.
Fri, Sep 7, 4:33 PM
jfb committed rL341730: Revert "ADT: add <bit> header, implement C++20 bit_cast, use".
Revert "ADT: add <bit> header, implement C++20 bit_cast, use"
Fri, Sep 7, 4:27 PM
jfb added a comment to D51693: ADT: add <bit> header, implement C++20 bit_cast, use.

Reverted by r341730. Looks like missing std::is_trivially_copyable.

Fri, Sep 7, 4:27 PM
jfb committed rL341728: ADT: add <bit> header, implement C++20 bit_cast, use.
ADT: add <bit> header, implement C++20 bit_cast, use
Fri, Sep 7, 4:09 PM
jfb closed D51693: ADT: add <bit> header, implement C++20 bit_cast, use.
Fri, Sep 7, 4:09 PM
jfb added a comment to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.

@mehdi_amini from our discussion in D49771 I think this patch takes us partway to what you wanted (having LLVM do at least as much work as clang when it comes to generating memset). After this commits I'll look at making clang less smart, and relying on LLVM being smart instead. I want to balance compile-time versus early code quality.

Fri, Sep 7, 4:08 PM
jfb updated subscribers of D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Fri, Sep 7, 4:08 PM
jfb added inline comments to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Fri, Sep 7, 3:43 PM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Update comments and move Ctx down a bit.
Fri, Sep 7, 3:43 PM
jfb added a comment to D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.

Will wait on D51751 before committing, otherwise clang tests will start failing (because current isRepeatedBytePattern isn't capable enough).

Fri, Sep 7, 2:42 PM
jfb retitled D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue from NFC: move isRepeatedBytePattern from clang to Constant to Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Fri, Sep 7, 11:51 AM
jfb updated the diff for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
  • Augment isBytewiseValue to be as powerful as clang's version. Update code that used it to handle undef merging. This captures more memcpy patterns and can generate memcpy of undef (which selection DAG later gets rid of).
Fri, Sep 7, 11:51 AM
jfb retitled D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue from NFC: move isRepeatedBytePattern from clang to Constant to NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
Fri, Sep 7, 11:47 AM
jfb updated the diff for D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
  • Use isBytewiseValue instead.
Fri, Sep 7, 11:45 AM
jfb committed rL341684: NFC: remove magic bool in LoopIdiomRecognize.
NFC: remove magic bool in LoopIdiomRecognize
Fri, Sep 7, 11:20 AM

Thu, Sep 6

jfb added a comment to D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
  • I assume the review lacks the changes on the llvm side?

Oops missed the link to the llvm changes in the description... At least in theory you should be able to make a review over all changes in parallel by using subversion or the experimental llvm git monorepo with llvm/utils/git-svn/git-llvm (admittedly haven't tried it myself yet either).

Thu, Sep 6, 2:28 PM
jfb planned changes to D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
Thu, Sep 6, 2:26 PM
jfb planned changes to D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.

As noted in D51752 I'll instead improve isBytewiseValue to do this.

Thu, Sep 6, 2:26 PM
jfb added a dependent revision for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue: D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
Thu, Sep 6, 2:26 PM
jfb added a comment to D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
In D51752#1226465, @jfb wrote:
  • I'm not a good person to review clang changes.
  • I assume the review lacks the changes on the llvm side?
  • On the LLVM side this feels like something for Analysis/ValueTracking.h in fact I already see Value *isBytewiseValue(Value *V); there, maybe that is good enough for your purpose?

Indeed, I just noticed the same. I'll try to figure out why it isn't firing where I want it to.

Thu, Sep 6, 2:26 PM
jfb added a dependency for D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue: D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 6, 2:26 PM
jfb added a comment to D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
  • I'm not a good person to review clang changes.
  • I assume the review lacks the changes on the llvm side?
  • On the LLVM side this feels like something for Analysis/ValueTracking.h in fact I already see Value *isBytewiseValue(Value *V); there, maybe that is good enough for your purpose?
Thu, Sep 6, 2:21 PM
jfb added a reviewer for D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue: MatzeB.
Thu, Sep 6, 2:13 PM
jfb added a reviewer for D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue: MatzeB.
Thu, Sep 6, 2:13 PM
jfb updated the summary of D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 6, 2:10 PM
jfb created D51752: NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValue.
Thu, Sep 6, 2:09 PM
jfb created D51751: Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue.
Thu, Sep 6, 2:09 PM
jfb added inline comments to D51084: Implement -Watomic-implicit-seq-cst.
Thu, Sep 6, 10:11 AM
jfb updated the diff for D51084: Implement -Watomic-implicit-seq-cst.
  • Address comments.
Thu, Sep 6, 10:11 AM
jfb committed rL341558: ARM64: improve non-zero memset isel by ~2x.
ARM64: improve non-zero memset isel by ~2x
Thu, Sep 6, 9:04 AM
jfb closed D51706: ARM64: improve non-zero memset isel by ~2x.
Thu, Sep 6, 9:04 AM
jfb added a comment to D40480: MemorySSA backed Dead Store Elimination..

Can you add tests for volatile?

The idea here would be that that enable-dse-memoryssa would be set to true eventually, so this should pass every existing DSE test. The old parts of this file could then be deleted. The multiblock tests are new as that's not something the old pass could do. I'm not sure if this will still pass all the existing tests, or if the old DSE algorithm has learnt new tricks since then.

Thu, Sep 6, 9:03 AM

Wed, Sep 5

jfb added inline comments to D51706: ARM64: improve non-zero memset isel by ~2x.
Wed, Sep 5, 8:16 PM