Page MenuHomePhabricator

rafauler (Rafael Auler)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 14 2018, 11:09 AM (234 w, 23 h)

Recent Activity

Today

rafauler added a comment to D131703: [test-release] Add option to build BOLT.

I tested on x86-64 ubuntu 22 and confirmed it builds.

Thu, Aug 11, 11:02 AM · Restricted Project, Restricted Project
rafauler requested review of D131703: [test-release] Add option to build BOLT.
Thu, Aug 11, 11:01 AM · Restricted Project, Restricted Project

Yesterday

rafauler added a comment to D131589: [llvm-objdump] Handle multiple syms at same addr in disassembly..

Thanks Simon, I think this patch makes a nice improvement to the behavior of objdump. I'm not the code owner of these disassembly tools, but the patch looks good to me. I would rather wait for the input of whoever is more familiar with objdump, though.

Wed, Aug 10, 2:43 PM · Restricted Project, Restricted Project

Mon, Aug 8

rafauler added inline comments to D129107: [BOLT][HUGIFY] adds huge pages support of PIE/no-PIE binaries.
Mon, Aug 8, 5:09 PM · Restricted Project, Restricted Project

Fri, Aug 5

rafauler accepted D131243: [BOLT][NFC] Simplify debug logging in case of JT heuristic failure.
Fri, Aug 5, 4:43 PM · Restricted Project, Restricted Project

Wed, Aug 3

rafauler committed rG19eb908e6116: [BOLT] Remove always true if statement (authored by rafauler).
[BOLT] Remove always true if statement
Wed, Aug 3, 1:12 PM · Restricted Project
rafauler closed D131092: [BOLT] Remove always true if statement.
Wed, Aug 3, 1:12 PM · Restricted Project, Restricted Project
rafauler requested review of D131092: [BOLT] Remove always true if statement.
Wed, Aug 3, 12:31 PM · Restricted Project, Restricted Project

Fri, Jul 29

rafauler committed rGfc0ced73dc8f: Add BAT testing framework (authored by rafauler).
Add BAT testing framework
Fri, Jul 29, 2:56 PM · Restricted Project
rafauler closed D129382: Add BAT testing framework.
Fri, Jul 29, 2:56 PM · Restricted Project, Restricted Project
rafauler updated the diff for D129382: Add BAT testing framework.

Rebasing

Fri, Jul 29, 2:55 PM · Restricted Project, Restricted Project

Thu, Jul 28

rafauler added a comment to D130663: [BOLT] Update sibling relationship from LSDA Section.

Can we add more testing that exercises the new code paths being added here?

Thu, Jul 28, 2:40 PM · Restricted Project, Restricted Project

Wed, Jul 27

rafauler added inline comments to D129107: [BOLT][HUGIFY] adds huge pages support of PIE/no-PIE binaries.
Wed, Jul 27, 4:28 PM · Restricted Project, Restricted Project
rafauler added a comment to D129107: [BOLT][HUGIFY] adds huge pages support of PIE/no-PIE binaries.

Thanks!

Wed, Jul 27, 4:17 PM · Restricted Project, Restricted Project
rafauler added inline comments to D130072: [BOLT] Update labels for split landing pad.
Wed, Jul 27, 1:16 PM · Restricted Project, Restricted Project

Fri, Jul 22

rafauler added a comment to D130072: [BOLT] Update labels for split landing pad.

I'm also curious if this adds runtime overhead by parsing LSDA two times per function. Can we measure that using a large binary as input?

Fri, Jul 22, 3:35 PM · Restricted Project, Restricted Project
rafauler added a comment to D130072: [BOLT] Update labels for split landing pad.

Excellent work Huan! I have a few design suggestions below. Let me know what do you think.

Fri, Jul 22, 3:32 PM · Restricted Project, Restricted Project

Wed, Jul 20

rafauler added a comment to D129107: [BOLT][HUGIFY] adds huge pages support of PIE/no-PIE binaries.

Those should be available in your build folder, here:

Wed, Jul 20, 5:46 PM · Restricted Project, Restricted Project

Fri, Jul 15

rafauler added inline comments to D129518: [BOLT] Add function layout class.
Fri, Jul 15, 4:15 PM · Restricted Project, Restricted Project
rafauler added inline comments to D129803: [BOLT][TEST] Add icp-inline.s test.
Fri, Jul 15, 3:52 PM · Restricted Project, Restricted Project
rafauler accepted D129803: [BOLT][TEST] Add icp-inline.s test.
Fri, Jul 15, 3:52 PM · Restricted Project, Restricted Project

Wed, Jul 13

rafauler added inline comments to D129382: Add BAT testing framework.
Wed, Jul 13, 6:12 PM · Restricted Project, Restricted Project
rafauler accepted D129408: [docs] Add BOLT Office Hours.
Wed, Jul 13, 11:36 AM · Restricted Project, Restricted Project

Tue, Jul 12

rafauler accepted D129260: [BOLT][AArch64] Handle gold linker veneers.

I agree, erasing functions in that pass seems hacky. Thanks.

Tue, Jul 12, 12:31 PM · Restricted Project, Restricted Project

Jul 11 2022

rafauler committed rG42a66fb72728: [BOLT] Restrict execution of tests that fail on Windows (authored by rafaelauler).
[BOLT] Restrict execution of tests that fail on Windows
Jul 11 2022, 6:07 PM · Restricted Project
rafauler closed D126933: [BOLT] Restrict execution of tests that fail on Windows.
Jul 11 2022, 6:06 PM · Restricted Project, Restricted Project
rafauler accepted D129139: [BOLT][AArch64] Use all supported CPU features on AArch64.

LGTM thanks!

Jul 11 2022, 5:49 PM · Restricted Project, Restricted Project
rafauler committed rGa3cfdd746e96: [BOLT] Increase coverage of shrink wrapping [5/5] (authored by rafauler).
[BOLT] Increase coverage of shrink wrapping [5/5]
Jul 11 2022, 5:34 PM · Restricted Project
rafauler committed rG3332904ad6fa: [BOLT] Increase coverage of shrink wrapping [3/5] (authored by rafauler).
[BOLT] Increase coverage of shrink wrapping [3/5]
Jul 11 2022, 5:34 PM · Restricted Project
rafauler committed rG3e5f67f356a1: [BOLT] Increase coverage of shrink wrapping [4/5] (authored by rafauler).
[BOLT] Increase coverage of shrink wrapping [4/5]
Jul 11 2022, 5:34 PM · Restricted Project
rafauler committed rG3508ced6ea23: [BOLT] Increase coverage of shrink wrapping [2/5] (authored by rafauler).
[BOLT] Increase coverage of shrink wrapping [2/5]
Jul 11 2022, 5:34 PM · Restricted Project
rafauler committed rG42465efd1717: [BOLT] Increase coverage of shrink wrapping [1/5] (authored by rafauler).
[BOLT] Increase coverage of shrink wrapping [1/5]
Jul 11 2022, 5:34 PM · Restricted Project
rafauler closed D126115: [BOLT] Increase coverage of shrink wrapping [5/5].
Jul 11 2022, 5:34 PM · Restricted Project, Restricted Project
rafauler closed D126114: [BOLT] Increase coverage of shrink wrapping [4/5].
Jul 11 2022, 5:34 PM · Restricted Project, Restricted Project
rafauler closed D126113: [BOLT] Increase coverage of shrink wrapping [3/5].
Jul 11 2022, 5:33 PM · Restricted Project, Restricted Project
rafauler closed D126112: [BOLT] Increase coverage of shrink wrapping [2/5].
Jul 11 2022, 5:33 PM · Restricted Project, Restricted Project
rafauler closed D126111: [BOLT] Increase coverage of shrink wrapping [1/5].
Jul 11 2022, 5:33 PM · Restricted Project, Restricted Project

Jul 8 2022

rafauler added inline comments to D129260: [BOLT][AArch64] Handle gold linker veneers.
Jul 8 2022, 2:52 PM · Restricted Project, Restricted Project
rafauler added a comment to D129260: [BOLT][AArch64] Handle gold linker veneers.

There's a memory leak the two tests:

Jul 8 2022, 2:50 PM · Restricted Project, Restricted Project
rafauler added a comment to D129107: [BOLT][HUGIFY] adds huge pages support of PIE/no-PIE binaries.

Thanks for working on improving hugify!

Jul 8 2022, 12:23 PM · Restricted Project, Restricted Project
rafauler added a comment to D129260: [BOLT][AArch64] Handle gold linker veneers.

Looks good, let me kick off tests

Jul 8 2022, 11:30 AM · Restricted Project, Restricted Project
rafauler added a comment to D128082: [BOLT][AArch64] Handle gold linker veneers.

I think that works. Feel free to reopen or create a new review, whichever is easier. CI runs:

Jul 8 2022, 11:25 AM · Restricted Project, Restricted Project
rafauler requested review of D129382: Add BAT testing framework.
Jul 8 2022, 10:07 AM · Restricted Project, Restricted Project

Jul 6 2022

rafauler added inline comments to D128082: [BOLT][AArch64] Handle gold linker veneers.
Jul 6 2022, 1:20 PM · Restricted Project, Restricted Project
rafauler added a comment to D128082: [BOLT][AArch64] Handle gold linker veneers.

The cause of the crash caused by this diff is because this diff moves processing of interprocedural references outside the disassembly loop.

Jul 6 2022, 1:19 PM · Restricted Project, Restricted Project

Jul 5 2022

rafauler accepted D129162: [BOLT] Change mutex implementation.

LGTM

Jul 5 2022, 6:30 PM · Restricted Project, Restricted Project
rafauler added a comment to D129089: [BOLT] Fix concurrent hash table modification in the instrumentation runtime.

Thanks!

Jul 5 2022, 2:22 PM · Restricted Project, Restricted Project

Jun 28 2022

rafauler added a comment to D128082: [BOLT][AArch64] Handle gold linker veneers.

Hi @yota9, I reverted this commit because it is causing BOLT to crash in one of your internal binaries, let me work a bit more on it to understand what is happening before you land it again. Thanks!

Jun 28 2022, 7:26 PM · Restricted Project, Restricted Project
rafauler added a reverting change for rG425dda76e9fa: [BOLT][AArch64] Handle gold linker veneers: rGfc2d96c334a1: Revert "[BOLT][AArch64] Handle gold linker veneers".
Jun 28 2022, 7:25 PM · Restricted Project
rafauler committed rGfc2d96c334a1: Revert "[BOLT][AArch64] Handle gold linker veneers" (authored by rafauler).
Revert "[BOLT][AArch64] Handle gold linker veneers"
Jun 28 2022, 7:25 PM · Restricted Project
rafauler added a reverting change for D128082: [BOLT][AArch64] Handle gold linker veneers: rGfc2d96c334a1: Revert "[BOLT][AArch64] Handle gold linker veneers".
Jun 28 2022, 7:25 PM · Restricted Project, Restricted Project
rafauler accepted D128699: [BOLT] Respect shouldPrint in dump-dot-all.

Thanks

Jun 28 2022, 4:34 PM · Restricted Project, Restricted Project
rafauler accepted D128696: [BOLT] Fix trampoline code for shared libraries and PIEs.

LGTM

Jun 28 2022, 4:31 PM · Restricted Project, Restricted Project

Jun 27 2022

rafauler accepted D128082: [BOLT][AArch64] Handle gold linker veneers.

LGTM

Jun 27 2022, 3:22 PM · Restricted Project, Restricted Project

Jun 24 2022

rafauler added a comment to D128561: [BOLT] Support split landing pad.

Rename typo in title BOTL -> BOLT

Jun 24 2022, 5:03 PM · Restricted Project, Restricted Project
rafauler added inline comments to D128474: [BOLT] Support multiple parents for split jump table.
Jun 24 2022, 5:03 PM · Restricted Project, Restricted Project
rafauler added a comment to D128474: [BOLT] Support multiple parents for split jump table.

Thanks Huan for all the work put in this diff. I have a few more comments below.

Jun 24 2022, 5:01 PM · Restricted Project, Restricted Project
rafauler added inline comments to D128474: [BOLT] Support multiple parents for split jump table.
Jun 24 2022, 4:47 PM · Restricted Project, Restricted Project
rafauler accepted D128558: [BOLT] Mark option values of --split-functions deprecated.

That's awesome, thanks

Jun 24 2022, 3:55 PM · Restricted Project, Restricted Project

Jun 23 2022

rafauler added a comment to D128474: [BOLT] Support multiple parents for split jump table.

Do you have a testcase?

Jun 23 2022, 6:16 PM · Restricted Project, Restricted Project
rafauler added inline comments to D128474: [BOLT] Support multiple parents for split jump table.
Jun 23 2022, 6:04 PM · Restricted Project, Restricted Project
rafauler added a comment to D128469: [BOLT] Remove removeConditionalTailCalls.

FYI if you just want to test, I think you can publish this as "draft" using "arc diff --draft"

Jun 23 2022, 5:41 PM · Restricted Project, Restricted Project
rafauler added inline comments to D128082: [BOLT][AArch64] Handle gold linker veneers.
Jun 23 2022, 5:03 PM · Restricted Project, Restricted Project
rafauler accepted D128404: [BOLT] Restrict icp-inline to callsites.

LGTM

Jun 23 2022, 4:08 PM · Restricted Project, Restricted Project
rafauler accepted D128375: [BOLT][NFC] Add aliases for ICP flags.

LGTM

Jun 23 2022, 4:06 PM · Restricted Project, Restricted Project
rafauler accepted D128154: [BOLT][NFC] Use range-based STL wrappers.

LGTM

Jun 23 2022, 2:52 PM · Restricted Project, Restricted Project

Jun 21 2022

rafauler accepted D128243: [BOLT][UTILS] Add nfc-check-setup --switch-back option.

LGTM

Jun 21 2022, 5:01 PM · Restricted Project, Restricted Project
rafauler accepted D128242: [BOLT][NFC] Use llvm::less_first.

LGTM

Jun 21 2022, 4:59 PM · Restricted Project, Restricted Project
rafauler added a comment to D128154: [BOLT][NFC] Use range-based STL wrappers.

It's a bit confusing to call a function named "stable_sort", which is a well-known C++ stdlib function, but we're actually calling stable_sort from LLVM and not from stdlib. I've tried looking up in LLVM repo and there are all sorts of usages of is_contained, for example: some of them use llvm:is_contained, others use is_contained directly. What is your take on this? Should we call llvm::stable_sort, or just stable_sort?

Jun 21 2022, 4:34 PM · Restricted Project, Restricted Project

Jun 17 2022

rafauler committed rG9d5e6ccd9bba: [BOLT] Fix for missing entry offset (authored by rafauler).
[BOLT] Fix for missing entry offset
Jun 17 2022, 1:15 PM · Restricted Project
rafauler closed D128092: [BOLT] Fix for missing entry offset.
Jun 17 2022, 1:15 PM · Restricted Project, Restricted Project
rafauler requested review of D128092: [BOLT] Fix for missing entry offset.
Jun 17 2022, 1:06 PM · Restricted Project, Restricted Project

Jun 15 2022

rafauler accepted D127928: [BOLT][NFCI] Remove redundant code.
Jun 15 2022, 7:38 PM · Restricted Project, Restricted Project

Jun 10 2022

rafauler accepted D127538: [BOLT][TEST] Use double dash flags in tests.

LGTM

Jun 10 2022, 4:14 PM · Restricted Project, Restricted Project
rafauler accepted D127413: [BOLT][AARCH64] Skip R_AARCH64_LD_PREL_LO19 relocation.

LGTM

Jun 10 2022, 4:02 PM · Restricted Project, Restricted Project
rafauler added a comment to D127220: [BOLT][AArch64] Preserve in text object alignment.

TBH it's not like code that makes weird layout assumptions is really important/buying us much performance anyway... so we might just replace it if we can., at the source, or just skip it / preserve it untouched in the original section.

Jun 10 2022, 3:53 PM · Restricted Project, Restricted Project
rafauler added a comment to D127220: [BOLT][AArch64] Preserve in text object alignment.

The way we support openSSL users for x86 (or users of any assembly-written libs that have layout assumptions, for that matter) is usually via -skip-funcs.

Jun 10 2022, 3:44 PM · Restricted Project, Restricted Project

Jun 9 2022

rafauler committed rG0b7e8baf83be: [BOLT][AArch64] Handle data at the beginning of a function when disassembling… (authored by Denis Revunov <revunov.denis@huawei-partners.com>).
[BOLT][AArch64] Handle data at the beginning of a function when disassembling…
Jun 9 2022, 3:27 PM · Restricted Project
rafauler closed D127111: [BOLT][AArch64] Handle data at the beginning of a function when disassembling and building CFG..
Jun 9 2022, 3:26 PM · Restricted Project, Restricted Project

Jun 8 2022

rafauler added a comment to D127220: [BOLT][AArch64] Preserve in text object alignment.

For reference in this discussion, offending code is here: https://github.com/openssl/openssl/blob/master/crypto/sha/asm/keccak1600-armv8.pl#L87

Jun 8 2022, 3:48 PM · Restricted Project, Restricted Project
rafauler added a comment to D127220: [BOLT][AArch64] Preserve in text object alignment.

Thanks @yota9 for working on this! I have some questions below.

Jun 8 2022, 3:47 PM · Restricted Project, Restricted Project
rafauler accepted D127111: [BOLT][AArch64] Handle data at the beginning of a function when disassembling and building CFG..

Thanks for reviewing @yota9 and thanks for your contribution @treapster. Do you need me to commit this?

Jun 8 2022, 3:05 PM · Restricted Project, Restricted Project

Jun 7 2022

rafauler accepted D126726: [X86][Disassembler] Fix displacement operand size for symbolizer.

LGTM

Jun 7 2022, 4:40 PM · Restricted Project, Restricted Project

Jun 6 2022

rafauler added a comment to rG907ca2584128: [BOLT-AArch64] Support large test binary.

Hi @treapster. The purpose of emitting data in the middle of the code section in RISC machines is to have it close to code that refers to it, so as to use less instructions to address this data. Otherwise, you would do it x86-way and just emit all data in the data sections, which could be far away (depends on how large is your text section). It's possible to argue that it's better for the cache hierarchy to emit data far away, and that for x86, since there is no penalty to address far-away data, it's a bad idea to emit data in the middle of the text section. The reason would be to compact code close together to use less pages in iTLB -- here, having non-executable bytes in .text pages is just wasted space from the point of view of i-cache.

Jun 6 2022, 4:43 PM
rafauler accepted D127045: [BOLT] Use 32-bit MOV to zero 64-bit register in instrumentation code.

LGTM, thanks!

Jun 6 2022, 3:24 PM · Restricted Project, Restricted Project

Jun 3 2022

rafauler accepted D126941: [BOLT][UTILS] Usability improvements for nfc-check-setup.

Btw, the stashed changes can't be recovered by any of the commands listed in your print statement, right? You would need to run git stash apply

Jun 3 2022, 2:52 PM · Restricted Project, Restricted Project
rafauler added a comment to D126933: [BOLT] Restrict execution of tests that fail on Windows.

Conceptually, the problem is that we need a full cross-compiler to build to a specific target (linux), but we only have the compiler, not the libs. That's why I thought it would make sense to restrict to environments where we are not cross compiling to a different system. Looking at "pie.test", for example, we are apparently building a .cpp file, which is even worse, as it requires libstdc++. Somehow I want to give test writers the idea that it is not OK to build C++ files unless you are not cross-compiling.

Jun 3 2022, 2:42 PM · Restricted Project, Restricted Project
rafauler added a comment to D126933: [BOLT] Restrict execution of tests that fail on Windows.

I've recently added some magic to pass linux target triple to cflags in bolt/test/lit.local.cfg:

host_linux_triple = config.target_triple.split('-')[0]+'-linux'
common_linker_flags = '-fuse-ld=lld -Wl,--unresolved-symbols=ignore-all'
flags = f'--target={host_linux_triple} {common_linker_flags}'

This would take the arch from target triple (x86_64 or aarch64) and append -linux. I didn't test it on Windows but it works on macOS. Therefore I'm reluctant to add system-linux to these tests that would restrict them to linux.

Can you please share what's passed as cflags on windows? Let's try to fix it. Our tests don't depend on system headers, so there's a good chance they would work even on windows.

Jun 3 2022, 2:36 PM · Restricted Project, Restricted Project
rafauler added a comment to D126116: [X86][BOLT] Use getOperandType to determine memory access size.

(I'm talking about a separate test repo, btw. The in-tree test should still be fixed individually for each diff to avoid breaking bisecting tools)

Jun 3 2022, 2:22 PM · Restricted Project, Restricted Project
rafauler added a comment to D126116: [X86][BOLT] Use getOperandType to determine memory access size.

We should time it to land in the same day and then land changes to tests that compensates for the aggregate of all changes. Regarding the order, I don't have any preference, as long as both patchsets hit the repo in the same day.

Jun 3 2022, 2:21 PM · Restricted Project, Restricted Project
rafauler added a comment to D126116: [X86][BOLT] Use getOperandType to determine memory access size.

Btw from BOLT perspective this diff LGTM. Regarding the changes to X86 target, those look minimal and rather benign to me. It is apparently using tablegen info (GET_INSTRINFO_OPERAND_TYPE) that is not used by any other backend that is in-tree, but TableGen supports generating this info and it is even in their testsuite. Even if it has a bug because it hasn't been used, I think it makes sense to try for us as it obviously won't break any existing code as we are the only users of this information. We should wait for someone responsible for the X86 target to approve this change, though.

Jun 3 2022, 12:17 PM · Restricted Project, Restricted Project
rafauler added a comment to D126116: [X86][BOLT] Use getOperandType to determine memory access size.

Let me try to elaborate on why this diff is important and has functional changes.

Jun 3 2022, 11:59 AM · Restricted Project, Restricted Project
rafauler added a comment to D126116: [X86][BOLT] Use getOperandType to determine memory access size.

No, this diff is not NFC. It's actually pretty impactful (and thanks for working on this Amir).

Jun 3 2022, 11:28 AM · Restricted Project, Restricted Project

Jun 2 2022

rafauler added a comment to D126111: [BOLT] Increase coverage of shrink wrapping [1/5].

You're right that it does result in functional changes.

Jun 2 2022, 5:51 PM · Restricted Project, Restricted Project
rafauler accepted D126912: [BOLT][DOCS] Add PACKAGE_VERSION to doxygen config.

LGTM

Jun 2 2022, 5:45 PM · Restricted Project, Restricted Project
rafauler requested review of D126933: [BOLT] Restrict execution of tests that fail on Windows.
Jun 2 2022, 5:40 PM · Restricted Project, Restricted Project
rafauler added a comment to D123050: [BOLT] Cache-Aware Tail Duplication.

@spupyrev I don't remember if you have commit access to the LLVM repo. If you don't, let me know, and I'll commit this once you are done with modifications and give me a green signal.

Jun 2 2022, 5:08 PM · Restricted Project, Restricted Project

Jun 1 2022

rafauler accepted D126844: [BOLT][NFC] Fix braces in BinaryEmitter.

LGTM

Jun 1 2022, 7:38 PM · Restricted Project, Restricted Project
rafauler accepted D126747: [BOLT] Add support for GOTPCRELX relocations.

Thanks! LGTM pending the test fix

Jun 1 2022, 7:29 PM · Restricted Project, Restricted Project

May 31 2022

rafauler accepted D126714: [BOLT][TEST] Replace cache+ option with ext-tsp.

Okay, looks good to me

May 31 2022, 4:27 PM · Restricted Project, Restricted Project