search for: x86fastisel

Displaying 20 results from an estimated 21 matches for "x86fastisel".

2011 Jun 28
0
[LLVMdev] How to make X86FastISel generate code for some intrinsic functions
Hi All, I want to use Fast Instruction Selection for my X86 back-end. However, my code often uses these two intrinsic functions: x86_sse_movmsk_ps and x86_sse2_pcmpeq_d, which are not supported yet by X86FastISel. Could you guys please show me how to add support for this two Intrinsics? Pointing out one example would be great, I can follow to implement others. I just know that I need to modify X86FastISel::X86VisitIntrinsicCall(const IntrinsicInst &), but not sure what needed here :). Thank you in ad...
2013 Apr 17
1
[LLVMdev] Why does x86 fast-isel reject unaligned stores?
In X86FastISel::X86SelectStore(), improperly aligned stores are rejected and handled by the DAG-based ISel. However, X86FastISel::X86SelectLoad() makes no such requirement. Is there a reason for this alignment restriction on stores? Would it be reasonable to remove it? Jim -------------- next part -----------...
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...ong int, llvm::MachineInstr*, llvm::MachineInstr&>> = {<No data fields>}, NodePtr = 0x4b69388}, DL={LineCol = 0, ScopeIdx = 0}, TID=@0x803a99240) at MachineInstrBuilder.h:183 #3 0x00000008033c7637 in X86SelectRet (this=0x4530bd0, I=0x493fae0) at /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:771 #4 0x00000008033cc4fc in TargetSelectInstruction (this=0x4530bd0, I=0x493fae0) at /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:1783 #5 0x000000080315a64f in llvm::FastISel::SelectInstruction (this=0x4530bd0, I=0x493fae0) at /tmp/llvm-svn/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp:...
2010 Aug 27
3
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 27, 2010, at 11:00 AMPDT, Eric Christopher wrote: >>> >>> For some reason I am getting this error even when I only have an >>> empty 'main' function. So I couldn't create .ll file reproducing >>> it and I have to debug myself. >>> >>> The function causing the problem is stub created in >>> JIT::runFunction:
2015 Aug 22
2
SSE return w/ elf64 ABI
...sage: https://llvm.org/bugs/show_bug.cgi?id=23203 Report of rust bug: https://github.com/rust-lang/rust/issues/26449 Discussion on why Rust doesn't want to fix (a refused patch to libcore): https://github.com/rust-lang/rust/pull/26749 The error is coming from one of these files: lib/Target/X86/X86FastISel.cpp:3166: report_fatal_error("SSE register return with SSE disabled"); lib/Target/X86/X86ISelLowering.cpp:2107: report_fatal_error("SSE register return with SSE disabled"); lib/Target/X86/X86ISelLowering.cpp:2261: report_fatal_error("SSE register return with...
2010 Aug 27
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...hineInstr*, llvm::MachineInstr&>> = {<No data > fields>}, NodePtr = 0x4b69388}, DL={LineCol = 0, ScopeIdx = 0}, > TID=@0x803a99240) at MachineInstrBuilder.h:183 > #3 0x00000008033c7637 in X86SelectRet (this=0x4530bd0, I=0x493fae0) at > /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:771 > #4 0x00000008033cc4fc in TargetSelectInstruction (this=0x4530bd0, > I=0x493fae0) at /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:1783 > #5 0x000000080315a64f in llvm::FastISel::SelectInstruction > (this=0x4530bd0, I=0x493fae0) at > /tmp/llvm-svn/llvm/lib/CodeGen/Sele...
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 27, 2010, at 11:53 AMPDT, Yuri wrote: > On 08/27/2010 11:32, Yuri wrote: >> As I understand only one of TCRETURNri64 and RET should be created. >> I have sources of rev.112200. >> >> Here is the stack when TCRETURNri64 instruction is created: >> #1 0x0000000802c8b4e2 in llvm::MachineFunction::CreateMachineInstr >> (this=0x30eb000, TID=@0x803a78940,
2010 Aug 27
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...ong int, llvm::MachineInstr*, llvm::MachineInstr&>> = {<No data fields>}, NodePtr = 0x4b69388}, DL={LineCol = 0, ScopeIdx = 0}, TID=@0x803a99240) at MachineInstrBuilder.h:183 #3 0x00000008033c7637 in X86SelectRet (this=0x4530f30, I=0x493f240) at /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:771 #4 0x00000008033cc4fc in TargetSelectInstruction (this=0x4530f30, I=0x493f240) at /tmp/llvm-svn/llvm/lib/Target/X86/X86FastISel.cpp:1783 #5 0x000000080315a64f in llvm::FastISel::SelectInstruction (this=0x4530f30, I=0x493f240) at /tmp/llvm-svn/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp:...
2010 Mar 03
2
[LLVMdev] [PATCH] New calling convention for use by GHC
...) Need actual calling convention Touches: - include/llvm/CallingConv.h - lib/Target/X86/X86CallingConv.td 2) Handling new calling convention (including allowing it to be used in tail call optimisation). Touches: - lib/Target/X86/X86ISelLowering.cpp - lib/Target/X86/X86FastISel.cpp 3) New calling convention needs different callee save register list. Touches: - lib/Target/X86/X86RegisterInfo.cpp The GHC developers would love to get this included in LLVM so that we don't need to carry around our own version of LLVM. If this patch isn't something that yo...
2018 Sep 14
6
Function calls keep increasing the stack usage
Hi everyone, I found that LLVM generates redundant code when calling functions with constant parameters, with optimizations disabled. Consider the following C code snippet: int foo(int x, int y); void bar() { foo(1, 2); foo(3, 4); } Clang/LLVM 6.0 generates the following assembly code: _bar: subl $32, %esp movl $1, %eax movl $2, %ecx movl $1, (%esp) movl $2, 4(%esp) movl %eax, 28(%esp) movl
2018 Sep 14
2
Function calls keep increasing the stack usage
Sorry I missed that important detail. The relevant part of the command line is: -cc1 -S -triple i386-pc-win32 I don't expect it matters if it's for Windows or Linux in this case. On Fri, Sep 14, 2018 at 9:16 PM David Blaikie <dblaikie at gmail.com> wrote: > Can't say I've observed that behavior (though I'm just building from > top-of-tree rather than 6.0,
2012 Dec 06
0
[LLVMdev] [PATCH] Replacing EVT:s with MVT:s (when possible)
...onLoweringInfo.cpp | 2 +- lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 4 ++-- lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp | 2 +- lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 20 ++++++++++---------- lib/CodeGen/SelectionDAG/TargetLowering.cpp | 8 ++++---- lib/Target/X86/X86FastISel.cpp | 4 ++-- 7 files changed, 24 insertions(+), 24 deletions(-) commit 9f0cb7ed22f2791a7f315d44827a64de2503e145 Author: Patrik Hägglund <patrik.h.hagglund at ericsson.com> Date: Wed Dec 5 14:04:17 2012 +0100 Change a parameter of TargetLowering::getVectorTypeBreakd...
2018 Jan 24
2
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...lvm/trunk/lib/IR/AutoUpgrade.cpp > llvm/trunk/lib/IR/IRBuilder.cpp > llvm/trunk/lib/IR/Verifier.cpp > llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp > llvm/trunk/lib/Target/ARM/ARMFastISel.cpp > llvm/trunk/lib/Target/Mips/MipsFastISel.cpp > llvm/trunk/lib/Target/X86/X86FastISel.cpp > llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp > llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp > llvm/trunk/test/Analysis/AliasSet/memtransfer.ll > llvm/trunk/test/Analysis/BasicAA/assume.ll > llvm/trunk/test/Analysis/BasicAA/cs-cs.ll &gt...
2018 Jan 24
0
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...AG/SelectionDAGBuilder.cpp llvm/trunk/lib/IR/AutoUpgrade.cpp llvm/trunk/lib/IR/IRBuilder.cpp llvm/trunk/lib/IR/Verifier.cpp llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp llvm/trunk/lib/Target/ARM/ARMFastISel.cpp llvm/trunk/lib/Target/Mips/MipsFastISel.cpp llvm/trunk/lib/Target/X86/X86FastISel.cpp llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp llvm/trunk/test/Analysis/AliasSet/memtransfer.ll llvm/trunk/test/Analysis/BasicAA/assume.ll llvm/trunk/test/Analysis/BasicAA/cs-cs.ll llvm/trunk/test/Analysis/B...
2018 Jan 25
2
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...rade.cpp >> llvm/trunk/lib/IR/IRBuilder.cpp >> llvm/trunk/lib/IR/Verifier.cpp >> llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp >> llvm/trunk/lib/Target/ARM/ARMFastISel.cpp >> llvm/trunk/lib/Target/Mips/MipsFastISel.cpp >> llvm/trunk/lib/Target/X86/X86FastISel.cpp >> llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp >> llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp >> llvm/trunk/test/Analysis/AliasSet/memtransfer.ll >> llvm/trunk/test/Analysis/BasicAA/assume.ll >> llvm/trunk/test/Analysis/...
2013 Dec 05
3
[LLVMdev] X86 - Help on fixing a poor code generation bug
...ldPrint = true; } - return ShouldPrint; } Index: lib/Target/X86/CMakeLists.txt =================================================================== --- lib/Target/X86/CMakeLists.txt (revision 196508) +++ lib/Target/X86/CMakeLists.txt (working copy) @@ -18,6 +18,7 @@ X86CodeEmitter.cpp X86FastISel.cpp X86FloatingPoint.cpp + X86FoldRedundantInserts.cpp X86FrameLowering.cpp X86ISelDAGToDAG.cpp X86ISelLowering.cpp Index: lib/Target/X86/X86FoldRedundantInserts.cpp =================================================================== --- lib/Target/X86/X86FoldRedundantInserts.cpp (revi...
2018 Jan 25
3
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...llvm/trunk/lib/IR/IRBuilder.cpp >>> llvm/trunk/lib/IR/Verifier.cpp >>> llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp >>> llvm/trunk/lib/Target/ARM/ARMFastISel.cpp >>> llvm/trunk/lib/Target/Mips/MipsFastISel.cpp >>> llvm/trunk/lib/Target/X86/X86FastISel.cpp >>> llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp >>> llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp >>> llvm/trunk/test/Analysis/AliasSet/memtransfer.ll >>> llvm/trunk/test/Analysis/BasicAA/assume.ll >>> llvm/...
2018 Jan 25
0
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...AG/SelectionDAGBuilder.cpp llvm/trunk/lib/IR/AutoUpgrade.cpp llvm/trunk/lib/IR/IRBuilder.cpp llvm/trunk/lib/IR/Verifier.cpp llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp llvm/trunk/lib/Target/ARM/ARMFastISel.cpp llvm/trunk/lib/Target/Mips/MipsFastISel.cpp llvm/trunk/lib/Target/X86/X86FastISel.cpp llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp llvm/trunk/test/Analysis/AliasSet/memtransfer.ll llvm/trunk/test/Analysis/BasicAA/assume.ll llvm/trunk/test/Analysis/BasicAA/cs-cs.ll llvm/trunk/test/Analysis/B...
2009 Nov 12
2
[LLVMdev] Bootstrap Failure
Hi all, There's been a recent bootstrap failure that might be covered up because of another failure. I just wanted to point this out so that people can take a look: -bw Here's the failure from our buildbot: Assertion failed: (DestReg == VirtReg && "Unknown load situation!"), function RewriteMBB, file /Volumes/Sandbox/Buildbot/llvm/build.llvm-
2018 Jan 25
0
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
...AG/SelectionDAGBuilder.cpp llvm/trunk/lib/IR/AutoUpgrade.cpp llvm/trunk/lib/IR/IRBuilder.cpp llvm/trunk/lib/IR/Verifier.cpp llvm/trunk/lib/Target/AArch64/AArch64FastISel.cpp llvm/trunk/lib/Target/ARM/ARMFastISel.cpp llvm/trunk/lib/Target/Mips/MipsFastISel.cpp llvm/trunk/lib/Target/X86/X86FastISel.cpp llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/trunk/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp llvm/trunk/test/Analysis/AliasSet/memtransfer.ll llvm/trunk/test/Analysis/BasicAA/assume.ll llvm/trunk/test/Analysis/BasicAA/cs-cs.ll llvm/trunk/test/Analysis/B...