Page MenuHomePhabricator

arichardson (Alexander Richardson)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 4 2015, 4:18 PM (229 w, 2 d)

Recent Activity

Thu, Jan 23

arichardson accepted D60389: FileCheck [9/12]: Add support for matching formats.

Thanks! Looks good, just one minor typo in the documentation.

Thu, Jan 23, 5:01 PM · Restricted Project
arichardson added a comment to D73211: [RISCV] Fix evaluating %pcrel_lo against global and weak symbols.

@jrtc27 This should probably also go in the release branch or was the commit that exposed the problem made after the branch point?

Thu, Jan 23, 12:13 AM · Restricted Project

Wed, Jan 15

arichardson committed rG441410be471d: [ELF] Avoid false-positive assert in getErrPlace() (authored by arichardson).
[ELF] Avoid false-positive assert in getErrPlace()
Wed, Jan 15, 6:39 AM
arichardson closed D72567: [ELF] Avoid false-positive assert in getErrPlace().
Wed, Jan 15, 6:39 AM · Restricted Project

Tue, Jan 14

arichardson updated the diff for D72567: [ELF] Avoid false-positive assert in getErrPlace().

Move to if() above and update commment in test

Tue, Jan 14, 3:11 AM · Restricted Project

Mon, Jan 13

arichardson committed rG8e8ccf4712cf: [MIPS] Don't emit R_(MICRO)MIPS_JALR relocations against data symbols (authored by arichardson).
[MIPS] Don't emit R_(MICRO)MIPS_JALR relocations against data symbols
Mon, Jan 13, 6:17 AM
arichardson committed rG894f742acb97: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible (authored by arichardson).
[MIPS][ELF] Use PC-relative relocations in .eh_frame when possible
Mon, Jan 13, 6:17 AM
arichardson closed D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.
Mon, Jan 13, 6:16 AM · Restricted Project
arichardson closed D72571: [MIPS] Don't add R_(MICRO)MIPS_JALR relocations against data symbols.
Mon, Jan 13, 6:16 AM · Restricted Project
arichardson added inline comments to D72567: [ELF] Avoid false-positive assert in getErrPlace().
Mon, Jan 13, 1:48 AM · Restricted Project
arichardson updated the diff for D72567: [ELF] Avoid false-positive assert in getErrPlace().

Remove unncessary changes.

Mon, Jan 13, 1:48 AM · Restricted Project

Sun, Jan 12

arichardson created D72571: [MIPS] Don't add R_(MICRO)MIPS_JALR relocations against data symbols.
Sun, Jan 12, 8:49 AM · Restricted Project
arichardson created D72567: [ELF] Avoid false-positive assert in getErrPlace().
Sun, Jan 12, 6:25 AM · Restricted Project
arichardson accepted D60390: FileCheck [10/12]: Add support for signed numeric values.

Looks good to me once the tests have been added and other reviewers are also happy.

Sun, Jan 12, 3:12 AM · Restricted Project
arichardson accepted D60389: FileCheck [9/12]: Add support for matching formats.

Is everybody happy with the constness changes to the ExpressionFormat operators and the new unit tests?

Sun, Jan 12, 2:50 AM · Restricted Project

Fri, Jan 10

arichardson accepted D72309: Rework be15dfa88fb1 such that it works with GlobalISel which doesn't use EVT.

LGTM

Fri, Jan 10, 4:44 PM · Restricted Project
arichardson updated the summary of D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.
Fri, Jan 10, 7:55 AM · Restricted Project

Thu, Jan 9

arichardson accepted D72309: Rework be15dfa88fb1 such that it works with GlobalISel which doesn't use EVT.
Could we an overload that takes `LLT` instead and keep the boolean flag internal to the .cpp?
Thu, Jan 9, 3:06 PM · Restricted Project
arichardson committed rG8c387cbea76b: Add builtins for aligning and checking alignment of pointers and integers (authored by arichardson).
Add builtins for aligning and checking alignment of pointers and integers
Thu, Jan 9, 1:51 PM
arichardson closed D71499: Add builtins for aligning and checking alignment of pointers and integers.
Thu, Jan 9, 1:51 PM · Restricted Project
arichardson added a comment to D72309: Rework be15dfa88fb1 such that it works with GlobalISel which doesn't use EVT.

Could we an overload that takes LLT instead and keep the boolean flag internal to the .cpp?

Thu, Jan 9, 1:50 PM · Restricted Project
arichardson added a comment to D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.

ping? I believe this is the last blocker before FreeBSD can move to using Clang+LLD for MIPS64 by default. It would be really nice to get this in for LLVM 10.

Thu, Jan 9, 1:50 PM · Restricted Project
arichardson committed rG646ca7d7e72e: MipsDelaySlotFiller: Update registers def-uses for BUNDLE instructions (authored by arichardson).
MipsDelaySlotFiller: Update registers def-uses for BUNDLE instructions
Thu, Jan 9, 12:54 PM
arichardson committed rG1444e6e2e6f6: Re-apply "[ELF] Allow getErrPlace() to work before Out::bufferStart is set" (authored by arichardson).
Re-apply "[ELF] Allow getErrPlace() to work before Out::bufferStart is set"
Thu, Jan 9, 12:54 PM
arichardson closed D70659: [ELF] Allow getErrPlace() to work before Out::bufferStart is set.
Thu, Jan 9, 12:54 PM · Restricted Project
arichardson closed D72254: MipsDelaySlotFiller: Update registers def-uses for BUNDLE instructions.
Thu, Jan 9, 12:54 PM · Restricted Project
arichardson added a comment to D72449: [PATCH] [llvm-ranlib] Take in consideration UTC offset for D-flag.test.

I'm fine with this workaround although I'm very surprised that the test is not working. Especially since deterministic-archive.test and replace-update.test also set TZ to get reproducible output

Thu, Jan 9, 12:25 PM · Restricted Project
arichardson added inline comments to D72449: [PATCH] [llvm-ranlib] Take in consideration UTC offset for D-flag.test.
Thu, Jan 9, 7:15 AM · Restricted Project
arichardson added a comment to D72449: [PATCH] [llvm-ranlib] Take in consideration UTC offset for D-flag.test.

I was careful in the test to use TZ=UTC for all commands printing dates and it works fine for me in UTC+1 and in the UK which is currently UTC. Does the bot in question ignore the TZ variable?

Thu, Jan 9, 7:15 AM · Restricted Project

Wed, Jan 8

arichardson added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

Land this? (branching is near..)

Wed, Jan 8, 3:10 PM · Restricted Project

Tue, Jan 7

arichardson added a comment to D72309: Rework be15dfa88fb1 such that it works with GlobalISel which doesn't use EVT.

Could we invert the boolean flag to be isFloat? I fear that calling it isInteger, will lead the the same problems that I tried to fix in that commit (calling .isInteger() returns false for pointers).

Tue, Jan 7, 3:13 AM · Restricted Project

Mon, Jan 6

arichardson accepted D60389: FileCheck [9/12]: Add support for matching formats.

LGTM. Thanks for working on this feature!

Mon, Jan 6, 7:01 AM · Restricted Project
arichardson created D72254: MipsDelaySlotFiller: Update registers def-uses for BUNDLE instructions.
Mon, Jan 6, 5:01 AM · Restricted Project

Sun, Jan 5

arichardson added a comment to D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.

What's the fixup behavior of the linker here, e.g. does it make sense to just use absolute encoding here and let the linker fix it up?

Sun, Jan 5, 8:03 AM · Restricted Project
arichardson created D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.
Sun, Jan 5, 7:16 AM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Add a test that the new alignment is propagated to e.g. llvm.memcpy

To do this emit a llvm.assume for pointer types and mark the builtin
as having an alloc_align attribute (although that does not seem to do anything)

Sun, Jan 5, 5:46 AM · Restricted Project

Fri, Jan 3

arichardson added inline comments to D60389: FileCheck [9/12]: Add support for matching formats.
Fri, Jan 3, 7:16 AM · Restricted Project

Thu, Jan 2

arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Fix typos caused by dodgy n key on my keyboard.
Thu, Jan 2, 10:17 AM · Restricted Project
arichardson committed rG546c72a78b34: [llvm-ranlib] Update expected error message check for Windows (authored by arichardson).
[llvm-ranlib] Update expected error message check for Windows
Thu, Jan 2, 10:08 AM
arichardson added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

(temporarily undoing my review since it looks like things may change)

...

Aha! :)

However, I think this means that for the downstream CHERI codegen
there is one more case where we need to be careful
(but that shouldn't matter for upstream).
For us uintptr_t is represented as i8 addrspace(200)*.
As uintptr_t can hold values that are plain integers and not pointers,
we would need to add the inbounds only if the AST type is a pointer,
and use a non-inbounds GEP for (u)intptr_t.

I may be missing some details, but won't we get that for free,
since we only do gep for pointers already?

Thu, Jan 2, 10:08 AM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Generate inbounds GEP. Also mention that values must point to the same allocation in the documentation.
  • Clarify that correctly aligned values do not change.
Thu, Jan 2, 9:58 AM · Restricted Project
arichardson updated the summary of D71499: Add builtins for aligning and checking alignment of pointers and integers.
Thu, Jan 2, 7:54 AM · Restricted Project
arichardson updated subscribers of D71499: Add builtins for aligning and checking alignment of pointers and integers.

What i'm asking is:

  • Are these builtins designed (as per clang/docs/LanguageExtensions.rst) to only be passed pointers in-bounds to the allocated memory chunk (Logical pointer*), or any random bag of bits casted to pointer type (Physical Pointer*)?
  • If Logical pointer, are they designed to also produce Logical pointer? Or Physical Pointer?

In my view you both input and output should be a Logical pointer. If you want random values, you should be aligning uintptr_t instead.
For CHERI we only need to support passing and creating valid pointers (i.e. with the capability tag bit set and valid bounds information).
Since the source pointer contains bounds information, it will never be possible to use the __builtin_align_up/down result to access memory from a different underlying allocation.

Thu, Jan 2, 7:44 AM · Restricted Project
arichardson committed rGa4f3847f3d57: [llvm-ranlib] Relax D-flag.test to allow it to pass on Windows hosts (authored by arichardson).
[llvm-ranlib] Relax D-flag.test to allow it to pass on Windows hosts
Thu, Jan 2, 7:07 AM
arichardson added a comment to D71554: [llvm-ranlib] Handle -D and -U command line flag.

Should be fixed in https://github.com/llvm/llvm-project/commit/a4f3847f3d5742cfab7acdc614e7ca54643e0c85

Thu, Jan 2, 7:07 AM · Restricted Project, Restricted Project
arichardson added a comment to D71554: [llvm-ranlib] Handle -D and -U command line flag.

The test fails on Windows: http://45.33.8.238/win/4948/step_11.txt

Please take a look, and if takes a while to fix, revert in the meantime.

Thu, Jan 2, 6:57 AM · Restricted Project, Restricted Project
arichardson added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

Looks ok to me now in principle.
I have one more question about pointer variants though (see inline)

Thu, Jan 2, 5:37 AM · Restricted Project
arichardson committed rG136f34fed661: Fix D-flag.test by running chmod before creating the archive (authored by arichardson).
Fix D-flag.test by running chmod before creating the archive
Thu, Jan 2, 5:33 AM
arichardson committed rG535b3c6b2f1c: [llvm-ranlib] Handle -D and -U command line flag (authored by arichardson).
[llvm-ranlib] Handle -D and -U command line flag
Thu, Jan 2, 4:47 AM
arichardson closed D71554: [llvm-ranlib] Handle -D and -U command line flag.
Thu, Jan 2, 4:47 AM · Restricted Project, Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.

Improved code generation with a single GEP

Thu, Jan 2, 4:43 AM · Restricted Project

Wed, Jan 1

arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Also update the other codegen test
Wed, Jan 1, 2:57 PM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.

Address feedback: Avoid inttoptr by using ptrtoint + GEP instead.

Wed, Jan 1, 2:57 PM · Restricted Project
arichardson added inline comments to D71499: Add builtins for aligning and checking alignment of pointers and integers.
Wed, Jan 1, 2:57 PM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Address remaining comments
Wed, Jan 1, 7:26 AM · Restricted Project

Tue, Dec 31

arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Address feedback
Tue, Dec 31, 11:29 AM · Restricted Project
arichardson added a comment to D69701: [Utils] Allow "on-the-fly" argument changes for update_test_check scripts.

If I understand this correctly existing check lines between off/on directives should be copied verbatim. Could you add one (that does not match the auto-generated content) to the disabled part of the test?

Tue, Dec 31, 1:02 AM · Restricted Project
arichardson added inline comments to D69701: [Utils] Allow "on-the-fly" argument changes for update_test_check scripts.
Tue, Dec 31, 12:54 AM · Restricted Project
arichardson added a comment to D68851: [Utils] Allow update_test_checks to scrub attribute annotations.

Could you also make this change to update_cc_test_checks.py?

Tue, Dec 31, 12:17 AM · Restricted Project

Mon, Dec 30

arichardson added inline comments to D72014: [PowerPC]: Add powerpcspe target triple subarch component.
Mon, Dec 30, 2:06 PM · Restricted Project, Restricted Project
arichardson added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

Ping.

Mon, Dec 30, 2:23 AM · Restricted Project

Dec 20 2019

arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Add documentation for the new alignment builtins
Dec 20 2019, 10:19 AM · Restricted Project

Dec 18 2019

arichardson added inline comments to D71565: Make mangled_names.test and update_cc_test_checks.py work with Python 2..
Dec 18 2019, 12:43 PM · Restricted Project
arichardson accepted D71565: Make mangled_names.test and update_cc_test_checks.py work with Python 2..

Looks fine to me if @MaskRay is happy with it.

Dec 18 2019, 12:43 PM · Restricted Project
arichardson updated the diff for D71554: [llvm-ranlib] Handle -D and -U command line flag.

clang-format

Dec 18 2019, 4:24 AM · Restricted Project, Restricted Project
arichardson accepted D71615: [clang] [cmake] Fix gen_ast_dump_json_test.py binary dir.

LGTM

Dec 18 2019, 1:37 AM · Restricted Project
arichardson updated the diff for D71554: [llvm-ranlib] Handle -D and -U command line flag.

Also handle -h/-v as short options. Does the adjusted test look okay?

Dec 18 2019, 1:34 AM · Restricted Project, Restricted Project

Dec 16 2019

arichardson added a comment to D71565: Make mangled_names.test and update_cc_test_checks.py work with Python 2..

I think it might be better to just always use sys.executable and skip the tests if the version is less than (3, 5).

Dec 16 2019, 3:18 PM · Restricted Project
arichardson added a reviewer for D71565: Make mangled_names.test and update_cc_test_checks.py work with Python 2.: MaskRay.
Dec 16 2019, 3:18 PM · Restricted Project
arichardson added a comment to D70660: Add initial tests for update_{llc,cc}_test_checks.py.

I added a REQUIRES: line (and did the greppability suggestion) in cc802ea67beb66. I'd be interested in ways to make these tests not depend on py3 though.

Dec 16 2019, 11:40 AM · Restricted Project
arichardson added inline comments to D71554: [llvm-ranlib] Handle -D and -U command line flag.
Dec 16 2019, 9:39 AM · Restricted Project, Restricted Project
arichardson updated the diff for D71554: [llvm-ranlib] Handle -D and -U command line flag.

Force UTC timezone for reproducible results

Dec 16 2019, 9:11 AM · Restricted Project, Restricted Project
arichardson created D71554: [llvm-ranlib] Handle -D and -U command line flag.
Dec 16 2019, 8:43 AM · Restricted Project, Restricted Project
arichardson updated the diff for D71554: [llvm-ranlib] Handle -D and -U command line flag.

Drop unrelated change

Dec 16 2019, 8:43 AM · Restricted Project, Restricted Project
arichardson added inline comments to D70660: Add initial tests for update_{llc,cc}_test_checks.py.
Dec 16 2019, 8:15 AM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.

Fix align32array[0] -> &align32array[0] typo in test

Dec 16 2019, 7:57 AM · Restricted Project
arichardson updated the summary of D71499: Add builtins for aligning and checking alignment of pointers and integers.
Dec 16 2019, 6:54 AM · Restricted Project
arichardson updated the diff for D71499: Add builtins for aligning and checking alignment of pointers and integers.
  • Add support for constant-evaluating pointer values
  • Add errors messages for constant evaluation
  • Extend tests for constant evaluation
  • Use ptrtoint+inttoptr instead of ptrmask as suggested by @lebedev.ri
  • Fix SemaChecking.cpp
Dec 16 2019, 6:52 AM · Restricted Project

Dec 15 2019

arichardson added a comment to D64128: [CodeGen] Generate llvm.ptrmask instead of inttoptr(and(ptrtoint, C)) if possible..

I wouldn't favor adding something really obscure that was only useful for clang, but I think builtins to set and clear mask bits while promising to preserve object-reference identity would be more generally useful for libraries. For example, there might be somewhere in libc++ that could take advantage of this.

Dec 15 2019, 2:26 AM · Restricted Project, Restricted Project
arichardson added a comment to D71026: Fix LLVM_ENABLE_MODULES=ON + BUILD_SHARED_LIBS=ON build.

If I build on macOS with cmake -GNinja -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_PROJECTS=llvm;clang;lld;compiler-rt;libcxx;libcxxabi -DBUILD_SHARED_LIBS=ON -DLLVM_ENABLE_MODULES=ON, I get lots of linker errors building e.g. libclangASTDiff.dylib due to using the internal ASTMatchers header inside the Tooling/Transformer headers.

Dec 15 2019, 2:17 AM · Restricted Project

Dec 14 2019

arichardson added inline comments to D71499: Add builtins for aligning and checking alignment of pointers and integers.
Dec 14 2019, 3:30 AM · Restricted Project

Dec 13 2019

arichardson created D71499: Add builtins for aligning and checking alignment of pointers and integers.
Dec 13 2019, 4:49 PM · Restricted Project
arichardson updated the diff for D70659: [ELF] Allow getErrPlace() to work before Out::bufferStart is set.

Fix for UBSAN failure

Dec 13 2019, 2:14 PM · Restricted Project
arichardson reopened D70659: [ELF] Allow getErrPlace() to work before Out::bufferStart is set.
Dec 13 2019, 2:14 PM · Restricted Project
arichardson added a comment to D71026: Fix LLVM_ENABLE_MODULES=ON + BUILD_SHARED_LIBS=ON build.

Is the Tooling/Transformer library used by clang-format? The problem might be solved if the Tooling/Transformer library was its own module (just like Clang_ToolingInclusions).

Dec 13 2019, 11:56 AM · Restricted Project
arichardson added a comment to D71461: [LSAN] Increase stack space for guard-page.c test.

Does it crash in _dl_runtime_resolve_xsavec?
LGTM

Dec 13 2019, 11:46 AM · Restricted Project, Restricted Project
arichardson abandoned D71456: [UpdateTestChecks] Capture function signature variable definitions.

Duplicate of D69722 with a worse python implementation.

Dec 13 2019, 11:46 AM · Restricted Project
arichardson updated subscribers of D71456: [UpdateTestChecks] Capture function signature variable definitions.

Isn't this a copy of D69722 ? We need to get the testing stuff in so my pending patches can go in as well.

Dec 13 2019, 11:37 AM · Restricted Project
arichardson added a reviewer for D71205: [NFC] Add a SDValue overload for SelectionDAG::getMemBasePlusOffset(): craig.topper.
Dec 13 2019, 6:16 AM · Restricted Project
arichardson created D71461: [LSAN] Increase stack space for guard-page.c test.
Dec 13 2019, 4:27 AM · Restricted Project, Restricted Project
arichardson added a comment to D60389: FileCheck [9/12]: Add support for matching formats.

Some minor comments, but generally looking good to me.
We have a few downstream tests that will really benefit from matching Hex upper/lower so looking forward to this landing.

Dec 13 2019, 4:08 AM · Restricted Project
arichardson removed a child revision for D70890: [update_cc_test_checks.py] Use CHECK_RE from common: D70660: Add initial tests for update_{llc,cc}_test_checks.py.
Dec 13 2019, 3:40 AM · Restricted Project
arichardson removed a parent revision for D70660: Add initial tests for update_{llc,cc}_test_checks.py: D70890: [update_cc_test_checks.py] Use CHECK_RE from common.
Dec 13 2019, 3:40 AM · Restricted Project
arichardson updated the diff for D71206: [NFC] Implement SelectionDAG::getObjectPtrOffset() using getMemBasePlusOffset().

rebase

Dec 13 2019, 3:31 AM · Restricted Project
arichardson updated the diff for D71205: [NFC] Add a SDValue overload for SelectionDAG::getMemBasePlusOffset().

Implement using the other overload

Dec 13 2019, 3:22 AM · Restricted Project
arichardson added inline comments to D71205: [NFC] Add a SDValue overload for SelectionDAG::getMemBasePlusOffset().
Dec 13 2019, 3:12 AM · Restricted Project
arichardson added a parent revision for D71456: [UpdateTestChecks] Capture function signature variable definitions: D70660: Add initial tests for update_{llc,cc}_test_checks.py.
Dec 13 2019, 3:03 AM · Restricted Project
arichardson added a child revision for D70660: Add initial tests for update_{llc,cc}_test_checks.py: D71456: [UpdateTestChecks] Capture function signature variable definitions.
Dec 13 2019, 3:03 AM · Restricted Project
arichardson created D71456: [UpdateTestChecks] Capture function signature variable definitions.
Dec 13 2019, 2:57 AM · Restricted Project
arichardson updated the diff for D70660: Add initial tests for update_{llc,cc}_test_checks.py.
  • Use separate .expected files for the --function-signature tests
  • address comments
Dec 13 2019, 2:44 AM · Restricted Project