Page MenuHomePhabricator

miyuki (Mikhail Maltsev)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 6 2017, 10:05 AM (101 w, 2 d)

Recent Activity

Today

miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

@lebedev.ri, do you agree that all address spaces should be treated the same way as address space 0 (i.e. no signed overflow)?

I wouldn't be surprised if that isn't so, i don't think it's really documented what normal assumptions do and don't apply to non-0-address-spaces.

OK, let's stick to what is documented for GEP (and the status quo about objects larger than half of the address space).

Wed, Oct 16, 5:53 AM · Restricted Project
miyuki updated the diff for D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

Don't treat non-zero address space specially

Wed, Oct 16, 5:49 AM · Restricted Project
miyuki committed rG95b5d459a0eb: [ARM] Add a register class for GPR pairs without SP and use it. NFCI (authored by miyuki).
[ARM] Add a register class for GPR pairs without SP and use it. NFCI
Wed, Oct 16, 3:43 AM
miyuki closed D69026: [ARM] Add a register class for GPR pairs without SP and use it. NFCI.
Wed, Oct 16, 3:43 AM · Restricted Project
miyuki committed rL374990: [ARM] Add a register class for GPR pairs without SP and use it. NFCI.
[ARM] Add a register class for GPR pairs without SP and use it. NFCI
Wed, Oct 16, 3:43 AM
miyuki added inline comments to D69026: [ARM] Add a register class for GPR pairs without SP and use it. NFCI.
Wed, Oct 16, 2:59 AM · Restricted Project
miyuki created D69026: [ARM] Add a register class for GPR pairs without SP and use it. NFCI.
Wed, Oct 16, 2:55 AM · Restricted Project
miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

@lebedev.ri, do you agree that all address spaces should be treated the same way as address space 0 (i.e. no signed overflow)?

Wed, Oct 16, 2:20 AM · Restricted Project

Yesterday

miyuki updated the diff for D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

Added the NSW flag. This discussion thread also suggests that signed overflows should not occur in the inbounds GEPs: https://lists.llvm.org/pipermail/llvm-dev/2017-November/118914.html

Tue, Oct 15, 5:08 AM · Restricted Project

Fri, Oct 11

miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

ping

Fri, Oct 11, 8:33 AM · Restricted Project
miyuki added reviewers for D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699): lebedev.ri, spatel.
Fri, Oct 11, 8:33 AM · Restricted Project

Fri, Oct 4

miyuki committed rGcfe8bedca034: [utils] Fix incompatibility of bisect[-skip-count] with Python 3 (authored by miyuki).
[utils] Fix incompatibility of bisect[-skip-count] with Python 3
Fri, Oct 4, 9:44 AM
miyuki committed rL373759: [utils] Fix incompatibility of bisect[-skip-count] with Python 3.
[utils] Fix incompatibility of bisect[-skip-count] with Python 3
Fri, Oct 4, 9:44 AM
miyuki closed D68138: [utils] Fix incompatibility of bisect[-skip-count] with Python 3.
Fri, Oct 4, 9:44 AM · Restricted Project

Thu, Oct 3

miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

So clang is perfectly correct here.

Yes, Clang is correct. EmitGEPOffset is doing the wrong thing.
nuw is incorrect because negative offsets are allowed. nsw would also be incorrect because of the quote you mentioned before:

Thu, Oct 3, 2:34 AM · Restricted Project

Wed, Oct 2

miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

I also thought that "in bounds address of an allocated object" has something to do with the type used in the GEP instruction, but that's not how Clang interprets it.
E.g. for the following code

int read(int *buf) {
  buf -= 2;
  return *buf;
}

It generates the following:

define dso_local i32 @_Z4readPi(i32* nocapture readonly %buf) local_unnamed_addr #0 {
entry:
  %add.ptr = getelementptr inbounds i32, i32* %buf, i64 -2
  %0 = load i32, i32* %add.ptr, align 4, !tbaa !2
  ret i32 %0
}

I do not understand this point, could you elaborate please?

Wed, Oct 2, 11:11 AM · Restricted Project
miyuki added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

I'm not fully convinced this is correct, as per
https://llvm.org/docs/LangRef.html#getelementptr-instruction

If the inbounds keyword is present, the result value of the getelementptr is a poison value
if the base pointer is not an in bounds address of an allocated object, or if any of the
addresses that would be formed by successive addition of the offsets implied by the indices
to the base address with infinitely precise signed arithmetic are not an in bounds address
of that allocated object. <...>

I also thought that "in bounds address of an allocated object" has something to do with the type used in the GEP instruction, but that's not how Clang interprets it.
E.g. for the following code

Wed, Oct 2, 10:46 AM · Restricted Project
miyuki created D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).
Wed, Oct 2, 9:56 AM · Restricted Project

Tue, Oct 1

miyuki updated the diff for D68138: [utils] Fix incompatibility of bisect[-skip-count] with Python 3.

Added from __future__ import print_function

Tue, Oct 1, 7:52 AM · Restricted Project

Mon, Sep 30

miyuki added a comment to D68138: [utils] Fix incompatibility of bisect[-skip-count] with Python 3.

What happens when this is run with python 2 in the path? Should this explicitly run via python3?

Mon, Sep 30, 1:18 AM · Restricted Project

Fri, Sep 27

miyuki created D68138: [utils] Fix incompatibility of bisect[-skip-count] with Python 3.
Fri, Sep 27, 6:21 AM · Restricted Project

Thu, Sep 26

miyuki accepted D68025: [MC][ARM] vscclrm disassembles as vldmia.
Thu, Sep 26, 10:28 AM · Restricted Project
miyuki added inline comments to D68025: [MC][ARM] vscclrm disassembles as vldmia.
Thu, Sep 26, 7:27 AM · Restricted Project

Sep 5 2019

miyuki committed rL371049: Request commit access for miyuki.
Request commit access for miyuki
Sep 5 2019, 3:21 AM

Sep 3 2019

miyuki added a comment to D61144: [LoopIdiomRecognize] BCmp loop idiom recognition.

Could you please look into https://bugs.llvm.org/show_bug.cgi?id=43206 ?

Sep 3 2019, 7:47 AM · Restricted Project

Aug 30 2019

miyuki added a comment to D65497: [RISCV] Avoid generating AssertZext for LP64 ABI when lowering floating Libcall.

Hi. Could you please look into https://bugs.llvm.org/show_bug.cgi?id=43183 (it seems to be related)

Aug 30 2019, 10:53 AM · Restricted Project

Aug 20 2019

miyuki added 1 commit(s) for D63284: [libc++] Keep __regex_word in sync with ctype_base: rCXX369364: [libcxx] Fix build breakage on mips.
Aug 20 2019, 3:22 AM · Restricted Project, Restricted Project
miyuki committed rGa83220c6f2ec: [libcxx] Fix build breakage on mips (authored by miyuki).
[libcxx] Fix build breakage on mips
Aug 20 2019, 3:20 AM
miyuki committed rL369364: [libcxx] Fix build breakage on mips.
[libcxx] Fix build breakage on mips
Aug 20 2019, 3:20 AM
miyuki added inline comments to D63284: [libc++] Keep __regex_word in sync with ctype_base.
Aug 20 2019, 3:07 AM · Restricted Project, Restricted Project

Jul 31 2019

miyuki committed rG806231ecc396: [ARM] Reject CSEL instructions with invalid operands (authored by miyuki).
[ARM] Reject CSEL instructions with invalid operands
Jul 31 2019, 7:23 AM
miyuki committed rL367433: [ARM] Reject CSEL instructions with invalid operands.
[ARM] Reject CSEL instructions with invalid operands
Jul 31 2019, 7:23 AM
miyuki closed D65505: [ARM] Reject CSEL instructions with invalid operands.
Jul 31 2019, 7:23 AM · Restricted Project
miyuki created D65505: [ARM] Reject CSEL instructions with invalid operands.
Jul 31 2019, 3:49 AM · Restricted Project

Jul 22 2019

miyuki committed rGb64b9009628d: [libunwind][ARM] Fix types in _Unwind_VRS_Get. (authored by miyuki).
[libunwind][ARM] Fix types in _Unwind_VRS_Get.
Jul 22 2019, 9:45 AM
miyuki committed rL366701: [libunwind][ARM] Fix types in _Unwind_VRS_Get..
[libunwind][ARM] Fix types in _Unwind_VRS_Get.
Jul 22 2019, 9:44 AM

Jul 19 2019

miyuki committed rGf41e62715729: [libunwind][ARM] Fix loading FP registers on big-endian targets (authored by miyuki).
[libunwind][ARM] Fix loading FP registers on big-endian targets
Jul 19 2019, 8:24 AM
miyuki committed rL366587: [libunwind][ARM] Fix loading FP registers on big-endian targets.
[libunwind][ARM] Fix loading FP registers on big-endian targets
Jul 19 2019, 8:20 AM
miyuki closed D64996: [libunwind][ARM] Fix loading FP registers on big-endian targets.
Jul 19 2019, 8:20 AM · Restricted Project, Restricted Project
miyuki created D64996: [libunwind][ARM] Fix loading FP registers on big-endian targets.
Jul 19 2019, 7:40 AM · Restricted Project, Restricted Project
miyuki committed rG0b001f94a54a: [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL (authored by miyuki).
[ARM] Add <saturate> operand to SQRSHRL and UQRSHLL
Jul 19 2019, 2:49 AM
miyuki committed rL366555: [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL.
[ARM] Add <saturate> operand to SQRSHRL and UQRSHLL
Jul 19 2019, 2:48 AM
miyuki closed D64810: [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL.
Jul 19 2019, 2:48 AM · Restricted Project
miyuki updated the diff for D64810: [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL.

Removed some redundancy.

Jul 19 2019, 2:31 AM · Restricted Project

Jul 16 2019

miyuki created D64810: [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL.
Jul 16 2019, 10:53 AM · Restricted Project

Jul 10 2019

miyuki accepted D64502: [ARM] Remove nonexistent unsigned forms of MVE VQDMLAH..
Jul 10 2019, 8:24 AM · Restricted Project
miyuki committed rGed143c5d59bd: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present (authored by miyuki).
[ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present
Jul 10 2019, 2:01 AM
miyuki committed rL365604: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present.
[ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present
Jul 10 2019, 1:59 AM
miyuki closed D64413: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present.
Jul 10 2019, 1:59 AM · Restricted Project

Jul 9 2019

miyuki updated the diff for D64413: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present.

Uploaded the correct patch

Jul 9 2019, 11:17 AM · Restricted Project
miyuki updated the diff for D64413: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present.

Changed predicate for variants with suffixes

Jul 9 2019, 11:17 AM · Restricted Project
miyuki committed rGa448ed99dfdb: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets (authored by miyuki).
[libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets
Jul 9 2019, 8:33 AM
miyuki committed rL365505: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets.
[libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets
Jul 9 2019, 8:29 AM
miyuki closed D64402: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets.
Jul 9 2019, 8:29 AM · Restricted Project, Restricted Project
miyuki created D64413: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present.
Jul 9 2019, 6:24 AM · Restricted Project
miyuki added reviewers for D64402: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets: dmgreen, christof.
Jul 9 2019, 4:51 AM · Restricted Project, Restricted Project
miyuki created D64402: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets.
Jul 9 2019, 4:49 AM · Restricted Project, Restricted Project

Jul 8 2019

miyuki committed rGee81051fc96a: [ARM] Relax constraints on operands of VQxDMLxDH instructions (authored by miyuki).
[ARM] Relax constraints on operands of VQxDMLxDH instructions
Jul 8 2019, 2:46 AM
miyuki committed rL365306: [ARM] Relax constraints on operands of VQxDMLxDH instructions.
[ARM] Relax constraints on operands of VQxDMLxDH instructions
Jul 8 2019, 2:46 AM
miyuki closed D64250: [ARM] Relax constraints on operands of VQxDMLxDH instructions.
Jul 8 2019, 2:46 AM · Restricted Project
miyuki abandoned D64260: [libc++] Erase-Like Algorithms in C++17 and below.

Abandoned in favor of:
https://reviews.llvm.org/rG1ab3fe8a7a6537f882bbb2dac72c479d05eb8c49 and
https://reviews.llvm.org/rGf814dcbafbabd46a1babaeabec6acc3b70951bf4

Jul 8 2019, 2:37 AM · Restricted Project

Jul 5 2019

miyuki created D64260: [libc++] Erase-Like Algorithms in C++17 and below.
Jul 5 2019, 11:51 AM · Restricted Project
miyuki added reviewers for D64250: [ARM] Relax constraints on operands of VQxDMLxDH instructions: SjoerdMeijer, samparker.
Jul 5 2019, 8:11 AM · Restricted Project
miyuki added a comment to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

Shouldn't the type change be guarded with a conditional compilation construct? I could write

std::list<int> l
assert(typeid(void) == typeid(l.unique()));

and expect this assertion to pass when compiling with, say, -std=c++98.

Jul 5 2019, 8:04 AM
miyuki created D64250: [ARM] Relax constraints on operands of VQxDMLxDH instructions.
Jul 5 2019, 7:44 AM · Restricted Project

Jul 4 2019

miyuki added a comment to D64105: libc++: add _LIBCPP_HAS_NO_LONG_DOUBLE.

We have a similar problem with our port of libc++ and we also had to conditionalize all uses of long double downstream. Here is a list of files that we had to change: https://pastebin.com/5tTcSYxW
As you see, most of them are tests.
Another problem with long double is that it is used in a couple of places not strictly requiring it (include/locale, include/__mutex_base and include/thread), in those cases we introduced a _LIBCPP_LONGEST_DOUBLE macro which is defined to either double or long double depending on the availability of the latter.

Jul 4 2019, 3:38 AM

Jul 1 2019

miyuki committed rG8b2e304bc57c: [ARM] Fix MVE_VQxDMLxDH instruction class (authored by miyuki).
[ARM] Fix MVE_VQxDMLxDH instruction class
Jul 1 2019, 9:09 AM
miyuki committed rL364796: [ARM] Fix MVE_VQxDMLxDH instruction class.
[ARM] Fix MVE_VQxDMLxDH instruction class
Jul 1 2019, 9:08 AM
miyuki closed D64007: [ARM] Fix MVE_VQxDMLxDH instruction class.
Jul 1 2019, 9:07 AM · Restricted Project
miyuki committed rG4a9e3f15bbb2: [ARM] MVE: support QQPRRegClass and QQQQPRRegClass (authored by miyuki).
[ARM] MVE: support QQPRRegClass and QQQQPRRegClass
Jul 1 2019, 9:07 AM
miyuki committed rL364794: [ARM] MVE: support QQPRRegClass and QQQQPRRegClass.
[ARM] MVE: support QQPRRegClass and QQQQPRRegClass
Jul 1 2019, 9:07 AM
miyuki closed D64009: [ARM] MVE: support QQPRRegClass and QQQQPRRegClass.
Jul 1 2019, 9:07 AM · Restricted Project
miyuki updated the diff for D64009: [ARM] MVE: support QQPRRegClass and QQQQPRRegClass.

Fix a comment

Jul 1 2019, 9:02 AM · Restricted Project
miyuki created D64009: [ARM] MVE: support QQPRRegClass and QQQQPRRegClass.
Jul 1 2019, 7:08 AM · Restricted Project
miyuki created D64007: [ARM] Fix MVE_VQxDMLxDH instruction class.
Jul 1 2019, 6:37 AM · Restricted Project

Jun 27 2019

miyuki abandoned D63827: [ARM] Allow MVE loads and stores of v2f64.

Subsumed by: https://reviews.llvm.org/D63838

Jun 27 2019, 8:17 AM · Restricted Project
miyuki accepted D63865: [ARM] Fix bogus assertions in copyPhysReg v8.1-M cases..

LGTM

Jun 27 2019, 3:01 AM · Restricted Project

Jun 26 2019

miyuki updated the diff for D63827: [ARM] Allow MVE loads and stores of v2f64.

Added a test which uses <2 x double>. Alignment issue should be fixed separately, IMHO.

Jun 26 2019, 9:59 AM · Restricted Project
miyuki added inline comments to D63827: [ARM] Allow MVE loads and stores of v2f64.
Jun 26 2019, 9:45 AM · Restricted Project
miyuki created D63827: [ARM] Allow MVE loads and stores of v2f64.
Jun 26 2019, 8:43 AM · Restricted Project
miyuki committed rG6dcbb3161e35: [ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets (authored by miyuki).
[ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets
Jun 26 2019, 3:51 AM
miyuki committed rL364404: [ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets.
[ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets
Jun 26 2019, 3:50 AM
miyuki closed D63778: [ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets.
Jun 26 2019, 3:50 AM · Restricted Project

Jun 25 2019

miyuki created D63778: [ARM] Handle fixup_arm_pcrel_9 correctly on big-endian targets.
Jun 25 2019, 10:23 AM · Restricted Project

Jun 21 2019

miyuki committed rGcfdc7f0d7e25: [libc++] Avoid using timespec when it might not be available (authored by miyuki).
[libc++] Avoid using timespec when it might not be available
Jun 21 2019, 1:31 AM
miyuki committed rL364012: [libc++] Avoid using timespec when it might not be available.
[libc++] Avoid using timespec when it might not be available
Jun 21 2019, 1:30 AM
miyuki closed D63328: [libc++] Avoid using timespec when it might not be available.
Jun 21 2019, 1:30 AM · Restricted Project, Restricted Project

Jun 19 2019

miyuki added a comment to D63328: [libc++] Avoid using timespec when it might not be available.

We maintain such library for an embedded toolchain. Besides, only C++17 and later versions are based on C11.

Jun 19 2019, 2:08 AM · Restricted Project, Restricted Project

Jun 18 2019

miyuki committed rGa45292cbfd24: [CodeGen][ARM] Fix FP16 vector coercion (authored by miyuki).
[CodeGen][ARM] Fix FP16 vector coercion
Jun 18 2019, 7:35 AM
miyuki committed rL363687: [CodeGen][ARM] Fix FP16 vector coercion.
[CodeGen][ARM] Fix FP16 vector coercion
Jun 18 2019, 7:35 AM
miyuki closed D63437: [CodeGen][ARM] Fix FP16 vector coercion.
Jun 18 2019, 7:35 AM · Restricted Project, Restricted Project
miyuki added a comment to D63328: [libc++] Avoid using timespec when it might not be available.

__libcpp_condvar_timedwait needs to be implemented in a different TU, so it can't be a template and at the same time it needs some sort of time point. I think timespec was chosen because it is what pthread_cond_timedwait expects. Do you think a specialization of chrono::time_point (like chrono::time_point<chrono::system_clock, chrono::nanoseconds> used by condition_variable::__do_timed_wait) would make more sense here?

Jun 18 2019, 2:43 AM · Restricted Project, Restricted Project

Jun 17 2019

miyuki added a comment to D63437: [CodeGen][ARM] Fix FP16 vector coercion.

This doesn't look like the right pace to fix this - the backend can handle vectors of i8 and i16, which are also not legal types, so why can't it correctly handle vectors of f16?

Jun 17 2019, 9:12 AM · Restricted Project, Restricted Project
miyuki updated subscribers of D63437: [CodeGen][ARM] Fix FP16 vector coercion.
Jun 17 2019, 8:49 AM · Restricted Project, Restricted Project
miyuki created D63437: [CodeGen][ARM] Fix FP16 vector coercion.
Jun 17 2019, 8:46 AM · Restricted Project, Restricted Project
miyuki committed rGd5323f6a707e: [libunwind][AArch64] Fix libunwind::Registers_arm64::jumpto (authored by miyuki).
[libunwind][AArch64] Fix libunwind::Registers_arm64::jumpto
Jun 17 2019, 3:58 AM
miyuki committed rL363545: [libunwind][AArch64] Fix libunwind::Registers_arm64::jumpto.
[libunwind][AArch64] Fix libunwind::Registers_arm64::jumpto
Jun 17 2019, 3:57 AM
miyuki closed D63006: [libunwind][AArch64] Fix libunwind::Registers_arm64::jumpto.
Jun 17 2019, 3:57 AM · Restricted Project, Restricted Project

Jun 14 2019

miyuki committed rGd1cc2e1543e7: [ARM] Add MVE horizontal accumulation instructions (authored by miyuki).
[ARM] Add MVE horizontal accumulation instructions
Jun 14 2019, 7:29 AM
miyuki committed rL363403: [ARM] Add MVE horizontal accumulation instructions.
[ARM] Add MVE horizontal accumulation instructions
Jun 14 2019, 7:29 AM