Page MenuHomePhabricator

mjacob (Manuel Jacob)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 12 2014, 2:17 PM (288 w, 3 d)

Recent Activity

Jun 4 2018

mjacob added a comment to D25265: [C API] Add test for D25259 and new LLVMIsExact function..

I'm really sorry to not have finished this, despite telling you that I'll do it.

Jun 4 2018, 7:05 PM

Apr 26 2017

mjacob added a comment to D16515: [Attributes] Implement type attributes..

Should I rebase this patch and D16516?

Apr 26 2017, 6:34 AM
mjacob added a reviewer for D16515: [Attributes] Implement type attributes.: dblaikie.
Apr 26 2017, 6:33 AM

Oct 5 2016

mjacob added a comment to D25265: [C API] Add test for D25259 and new LLVMIsExact function..
  • It adds a new C API function (LLVMIsExact) which I don't really care about other than for writing this test.
  • It's asymmetric (e.g. missing something like LLVMSetIsExact). @deadalnix pointed this out as well.

The general question I'd have would be: isn't the ability to round-trip something that is "useful" in general with the C API?
If yes then it seems that the test helped identified the missing LLVMIsExact, and it is legit.
Otherwise yeah it isn't great to add API just for being able to fit the testing infrastructure and fit other APIs.

Oct 5 2016, 9:11 AM
mjacob abandoned D25265: [C API] Add test for D25259 and new LLVMIsExact function..

I wasn't very happy with the approach already when submitting the patch.

Oct 5 2016, 7:54 AM

Oct 4 2016

mjacob retitled D25265: [C API] Add test for D25259 and new LLVMIsExact function. from to [C API] Add test for D25259 and new LLVMIsExact function..
Oct 4 2016, 10:19 PM
mjacob retitled D25261: [C API] Add LLVMConstBinOp function. from to [C API] Add LLVMConstBinOp function..
Oct 4 2016, 5:13 PM
mjacob committed rL283269: [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions..
[C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions.
Oct 4 2016, 4:41 PM
mjacob closed D25259: [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions..
Oct 4 2016, 4:41 PM
mjacob retitled D25259: [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions. from to [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions..
Oct 4 2016, 4:11 PM

Jun 2 2016

mjacob committed rL271602: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
[PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes.
Jun 2 2016, 3:21 PM
mjacob closed D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
Jun 2 2016, 3:20 PM

Jun 1 2016

mjacob added inline comments to D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
Jun 1 2016, 6:20 PM
mjacob added a comment to D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..

Should be uncontroversial now, with InstSimplify instead of InstCombine.

Jun 1 2016, 5:34 PM

May 25 2016

mjacob retitled D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes. from [PM] Schedule InstCombine after late LICM run, to clean up LCSSA nodes. to [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
May 25 2016, 7:38 PM

May 24 2016

mjacob added a comment to D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..

For reference: here is the bug report I filed recently: https://llvm.org/bugs/show_bug.cgi?id=27620

May 24 2016, 7:00 PM
mjacob updated the diff for D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..

Run much cheaper InstSimplify instead of InstCombine.

May 24 2016, 6:59 PM
mjacob added a comment to D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..

For reference: here is the bug report I filed recently: https://llvm.org/bugs/show_bug.cgi?id=27620

May 24 2016, 6:52 PM
mjacob added inline comments to D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
May 24 2016, 5:09 PM
mjacob updated the diff for D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..

Fix test.

May 24 2016, 4:54 PM
mjacob updated D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes..
May 24 2016, 4:38 PM
mjacob retitled D20606: [PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes. from to [PM] Schedule InstCombine after late LICM run, to clean up LCSSA nodes..
May 24 2016, 4:38 PM
mjacob added a comment to D20584: [RewriteStatepointsForGC] All constant should have null base pointer.

I don't think this will bring any problems. My collector just ignores constant bases. Note that also before this change findBaseDefiningValue() didn't necessarily actually return the right value. E.g. calling it with a GEP on a global will return the GEP instead of the global.

May 24 2016, 1:42 PM

Mar 14 2016

mjacob committed rL263501: Re-add ConstantFoldInstOperands form taking opcode and return type..
Re-add ConstantFoldInstOperands form taking opcode and return type.
Mar 14 2016, 3:39 PM
mjacob closed D17901: Re-add ConstantFoldInstOperands form taking opcode and return type..
Mar 14 2016, 3:39 PM

Mar 4 2016

mjacob retitled D17901: Re-add ConstantFoldInstOperands form taking opcode and return type. from to Re-add ConstantFoldInstOperands form taking opcode and return type..
Mar 4 2016, 5:31 PM

Feb 11 2016

mjacob abandoned D15998: Implement __attribute__((gc_leaf_function))..

I experimented with another approach in the meantime.

Feb 11 2016, 9:54 AM

Jan 25 2016

mjacob added a comment to D16383: Change ConstantFoldInstOperands to take Instruction instead of opcode and type. NFC..

Hi Manuel,

Things like NewGVN don't always have instruction *'s to hand to ConstantFoldInstOperands.

For example, we create an expression that stores operands and opcodes and such (like GVN does!)

Before, we could pass the opcode and operands, and that worked great.

Now you've made it take the Instruction.

Sorry for making difficulties.

Jan 25 2016, 7:04 PM

Jan 24 2016

mjacob added inline comments to D16417: [opaque pointer types] [NFC] {Load,Store}Inst: get loaded/stored type from the instruction..
Jan 24 2016, 11:38 AM

Jan 23 2016

mjacob retitled D16516: [opaque pointer types] Add an explicit value type to the byval attribute. from to [opaque pointer types] Add an explicit value type to the byval attribute..
Jan 23 2016, 7:05 PM
mjacob retitled D16515: [Attributes] Implement type attributes. from to [Attributes] Implement type attributes..
Jan 23 2016, 6:32 PM
mjacob committed rL258649: Remove duplicate documentation in ConstantFolding.cpp. NFC..
Remove duplicate documentation in ConstantFolding.cpp. NFC.
Jan 23 2016, 2:54 PM
mjacob committed rL258648: Remove duplicate documentation in Attributes.cpp. NFC..
Remove duplicate documentation in Attributes.cpp. NFC.
Jan 23 2016, 2:46 PM
mjacob committed rL258647: Update outdated method documention in Attributes.h. NFC..
Update outdated method documention in Attributes.h. NFC.
Jan 23 2016, 2:42 PM

Jan 22 2016

mjacob committed rL258615: Put space after pointer type in test. NFC..
Put space after pointer type in test. NFC.
Jan 22 2016, 9:51 PM
mjacob added a comment to D16435: [RS4GC] Effective rematerialization at non-entry polls.
Jan 22 2016, 5:05 PM

Jan 21 2016

mjacob committed rL258480: Replace Type::getInt32Ty() and comparison by isIntegerTy(32). NFC..
Replace Type::getInt32Ty() and comparison by isIntegerTy(32). NFC.
Jan 21 2016, 7:34 PM
mjacob accepted D16282: [opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type instead of pointer type and rename to getIndexedOffsetInType..

LGTM

Jan 21 2016, 6:56 PM
mjacob added inline comments to D16425: [opaque pointer types] [NFC] isDereferenceable{,AndAligned}Pointer: take the accessed size (and alignment) as arguments..
Jan 21 2016, 6:24 PM
mjacob added a comment to D16426: [NFC] LoadInst: add two helper methods: getLoadedSize and getActualAlignment..

I think we should reverse the dependency and commit this before D16425.

Jan 21 2016, 5:53 PM
mjacob added inline comments to D16425: [opaque pointer types] [NFC] isDereferenceable{,AndAligned}Pointer: take the accessed size (and alignment) as arguments..
Jan 21 2016, 5:42 PM
mjacob accepted D16422: [opaque pointer types] [NFC] FindAvailableLoadedValue: take LoadInst instead of just the pointer..

LGTM

Jan 21 2016, 4:51 PM
mjacob added inline comments to D16418: [opaque pointer types] [NFC] Add an explicit type argument to ConstantFoldLoadFromConstPtr..
Jan 21 2016, 4:49 PM
mjacob added a comment to D16282: [opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type instead of pointer type and rename to getIndexedOffsetInType..

The title of this revision seems to be wrong. I don't see any changes to the API of gep_type_iterator.

Jan 21 2016, 4:25 PM
mjacob accepted D16302: [opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType when folding GEPs..

LGTM

Jan 21 2016, 3:24 PM
mjacob committed rL258411: Undo r258163 "Move part of an if condition into an assertion. NFC.".
Undo r258163 "Move part of an if condition into an assertion. NFC."
Jan 21 2016, 9:40 AM

Jan 20 2016

mjacob committed rL258391: Change ConstantFoldInstOperands to take Instruction instead of opcode and….
Change ConstantFoldInstOperands to take Instruction instead of opcode and…
Jan 20 2016, 10:37 PM
mjacob closed D16383: Change ConstantFoldInstOperands to take Instruction instead of opcode and type. NFC..
Jan 20 2016, 10:37 PM
mjacob committed rL258390: Introduce ConstantFoldCastOperand function and migrate some callers of….
Introduce ConstantFoldCastOperand function and migrate some callers of…
Jan 20 2016, 10:35 PM
mjacob closed D16380: Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC..
Jan 20 2016, 10:34 PM
mjacob committed rL258389: Introduce ConstantFoldBinaryOpOperands function and migrate some callers of….
Introduce ConstantFoldBinaryOpOperands function and migrate some callers of…
Jan 20 2016, 10:30 PM
mjacob closed D16378: Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantFoldInstOperands to use it. NFC..
Jan 20 2016, 10:30 PM
mjacob added inline comments to D16302: [opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType when folding GEPs..
Jan 20 2016, 5:53 PM
mjacob retitled D16383: Change ConstantFoldInstOperands to take Instruction instead of opcode and type. NFC. from to Change ConstantFoldInstOperands to take Instruction instead of opcode and type. NFC..
Jan 20 2016, 5:13 PM
mjacob updated the diff for D16380: Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC..

Try to base revision on D16378.

Jan 20 2016, 4:50 PM
mjacob updated D16380: Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC..
Jan 20 2016, 4:27 PM
mjacob updated the diff for D16380: Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC..

Update summary. Actually the remaining callers of ConstantFoldInstOperands cannot just be changed to use ConstantFoldInstruction.

Jan 20 2016, 4:26 PM
mjacob retitled D16380: Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC. from to Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it. NFC..
Jan 20 2016, 4:11 PM
mjacob updated the diff for D16378: Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantFoldInstOperands to use it. NFC..

Fix formatting, remove overly conservative assert.

Jan 20 2016, 3:47 PM
mjacob retitled D16378: Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantFoldInstOperands to use it. NFC. from to Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantFoldInstOperands to use it. NFC..
Jan 20 2016, 3:17 PM
mjacob committed rL258361: Run clang-format over ConstantFolding.h, fixing inconsistent indentation. NFC..
Run clang-format over ConstantFolding.h, fixing inconsistent indentation. NFC.
Jan 20 2016, 2:31 PM

Jan 19 2016

mjacob committed rL258163: Move part of an if condition into an assertion. NFC..
Move part of an if condition into an assertion. NFC.
Jan 19 2016, 11:12 AM
mjacob added a comment to D16302: [opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType when folding GEPs..

I'm stopping reviewing here. Please create a separate patch for the changes in SymbolicallyEvaluateGEP.

Jan 19 2016, 10:24 AM
mjacob accepted D16275: [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType..

LGTM.

Jan 19 2016, 9:19 AM
mjacob committed rL258134: Fix constant folding of constant vector GEPs with undef or null as pointer….
Fix constant folding of constant vector GEPs with undef or null as pointer…
Jan 19 2016, 8:38 AM
mjacob closed D16321: Fix constant folding of constant vector GEPs with undef or null as pointer argument..
Jan 19 2016, 8:38 AM
mjacob retitled D16321: Fix constant folding of constant vector GEPs with undef or null as pointer argument. from to Fix constant folding of constant vector GEPs with undef or null as pointer argument..
Jan 19 2016, 8:22 AM
mjacob committed rL258130: Rename Variable `Ptr` to `PtrTy`. NFC..
Rename Variable `Ptr` to `PtrTy`. NFC.
Jan 19 2016, 7:25 AM

Jan 18 2016

mjacob added inline comments to D16275: [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType..
Jan 18 2016, 1:29 PM

Jan 17 2016

mjacob accepted D16272: [opaque pointer types] Alloca: use getAllocatedType() instead of getType()->getElementType()..

LGTM.

Jan 17 2016, 4:03 PM
mjacob committed rL258024: [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the….
[opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the…
Jan 17 2016, 2:50 PM
mjacob closed D16281: [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the source element type of the GEP as an argument. by committing rL258024: [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the….
Jan 17 2016, 2:50 PM
mjacob accepted D16281: [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the source element type of the GEP as an argument..

LGTM, too. I'll commit it for you.

Jan 17 2016, 2:49 PM
mjacob committed rL258023: [opaque pointer types] [NFC] CallSite: use getFunctionType() instead of going….
[opaque pointer types] [NFC] CallSite: use getFunctionType() instead of going…
Jan 17 2016, 2:41 PM
mjacob closed D16273: [opaque pointer types] CallSite: use getFunctionType() instead of going through PointerType::getElementType. by committing rL258023: [opaque pointer types] [NFC] CallSite: use getFunctionType() instead of going….
Jan 17 2016, 2:41 PM
mjacob accepted D16273: [opaque pointer types] CallSite: use getFunctionType() instead of going through PointerType::getElementType..

LGTM too. I'll commit it for you.

Jan 17 2016, 2:38 PM
mjacob committed rL258022: [NFC] Remove one dead PointerType::getElementType() call..
[NFC] Remove one dead PointerType::getElementType() call.
Jan 17 2016, 2:32 PM
mjacob closed D16274: Remove one dead PointerType::getElementType() call. by committing rL258022: [NFC] Remove one dead PointerType::getElementType() call..
Jan 17 2016, 2:32 PM
mjacob accepted D16274: Remove one dead PointerType::getElementType() call..

LGTM too. I'll commit it for you.

Jan 17 2016, 2:27 PM
mjacob added inline comments to D16272: [opaque pointer types] Alloca: use getAllocatedType() instead of getType()->getElementType()..
Jan 17 2016, 12:59 PM

Jan 16 2016

mjacob updated subscribers of D16260: GlobalValue: use getValueType() instead of getType()->getPointerElementType()..
Jan 16 2016, 3:17 PM
mjacob committed rL257999: GlobalValue: use getValueType() instead of getType()->getPointerElementType()..
GlobalValue: use getValueType() instead of getType()->getPointerElementType().
Jan 16 2016, 12:35 PM
mjacob closed D16260: GlobalValue: use getValueType() instead of getType()->getPointerElementType(). by committing rL257999: GlobalValue: use getValueType() instead of getType()->getPointerElementType()..
Jan 16 2016, 12:34 PM
mjacob accepted D16260: GlobalValue: use getValueType() instead of getType()->getPointerElementType()..

LGTM.

Jan 16 2016, 12:19 PM
mjacob added a comment to D16260: GlobalValue: use getValueType() instead of getType()->getPointerElementType()..

Otherwise it looks fine to me.

Jan 16 2016, 11:47 AM

Jan 15 2016

mjacob added a comment to D15940: Add verifier pass for finding GC relocation bugs.

I have have patches which make the verifier accept the "non-constant GC pointer with constant base" case. Should I submit them for review after this patch here is committed?

Jan 15 2016, 9:00 AM

Jan 14 2016

mjacob accepted D16208: [docs] Document LLVM_{BUILD,LINK}_LLVM_DYLIB.

LGTM.

Jan 14 2016, 7:34 PM

Jan 12 2016

mjacob abandoned D16025: [RS4GC] Replace some asserts by similar code using report_fatal_error()..

Note: there are two more comments on the mailing list which didn't end up showing here.

Jan 12 2016, 6:25 PM
mjacob added a comment to D15998: Implement __attribute__((gc_leaf_function))..

Can you point me to some documentation on what the semantics of this attribute are? For instance, how does it play with other attributes (like naked or dllexport), is there a reason it shouldn't apply to Objective-C methods, etc?

Jan 12 2016, 8:58 AM

Jan 11 2016

mjacob added a comment to D16025: [RS4GC] Replace some asserts by similar code using report_fatal_error()..

At some point in the future I want to be able to compile the language I'm working on using a stable released version of LLVM, which is usually compiled with assertions disabled. Currently invalid input IR can lead to undefined (or at least unwanted) behaviour if assertions are disabled.

Jan 11 2016, 7:27 PM
mjacob added a comment to D15998: Implement __attribute__((gc_leaf_function))..

Also, before this gets exposed through Clang, we really should formalize/document the attribute. In practice, it implies the lack of a safepoint poll site inside the called function. Annoyingly, it's not an inferable property since we don't represent the possible insertion of a poll in the IR.

Jan 11 2016, 7:19 PM

Jan 8 2016

mjacob committed rL257250: [RS4GC] Update and simplify handling of Constants in….
[RS4GC] Update and simplify handling of Constants in…
Jan 8 2016, 8:05 PM
mjacob closed D16019: [RS4GC] Update and simplify handling of Constants in findBaseDefiningValueOfVector()..
Jan 8 2016, 8:05 PM
mjacob updated the diff for D16019: [RS4GC] Update and simplify handling of Constants in findBaseDefiningValueOfVector()..

Add test case.

Jan 8 2016, 8:05 PM
mjacob retitled D16025: [RS4GC] Replace some asserts by similar code using report_fatal_error(). from to [RS4GC] Replace some asserts by similar code using report_fatal_error()..
Jan 8 2016, 7:29 PM
mjacob committed rL257247: [RS4GC] Unify two asserts. NFC..
[RS4GC] Unify two asserts. NFC.
Jan 8 2016, 7:12 PM
mjacob retitled D16019: [RS4GC] Update and simplify handling of Constants in findBaseDefiningValueOfVector(). from to [RS4GC] Update and simplify handling of Constants in findBaseDefiningValueOfVector()..
Jan 8 2016, 6:41 PM
mjacob accepted D15982: [rs4gc] Optionally directly relocated vector of pointers.

Maybe you could move the caching to the lambda. However I'm fine with it if you had good reasons not to do so.

Jan 8 2016, 4:43 PM
mjacob updated subscribers of D15998: Implement __attribute__((gc_leaf_function))..
Jan 8 2016, 11:18 AM
mjacob retitled D15998: Implement __attribute__((gc_leaf_function)). from to Implement __attribute__((gc_leaf_function))..
Jan 8 2016, 10:37 AM