search for: getdirection

Displaying 10 results from an estimated 10 matches for "getdirection".

Did you mean: get_direction
2012 Oct 08
1
[LLVMdev] Fwd: Multiply i8 operands promotes to i32
Hello Pedro, As others have said we're assuming that you're using Clang as the frontend, the MSP430TargetInfo class inside lib/Basic/Targets.cpp (clang codebase) set ints to be 16 bits wide, so you should get 16bit mults straight away without promotion. But anyways for 8bit multiplicantions you can do the following to bypass argument promotion: 1) go to the lib/CodeGen/TargetInfo.cpp
2012 Nov 09
1
[LLVMdev] Loop carried dependence analysis?
...pass. But the flow, anti dependence, etc methods are > only reporting sequential and not loop carried dependencies. Does LLVM > support loop carried dependency analysis? > > In addition, the distance and direction for dependent instructions always > have invalid values; Dependence::getDirection() returns DVEntry::ALL which > is the default value and Dependence::getDistance always returns null. > > E.g, for this input loop: > for (int i = 1; i < 100; i++) > { > arr[i] = arr[i-1]; > } > > This dependence is reported: > %1 = load i32* %arrayidx.i, align 4...
2012 Nov 09
0
[LLVMdev] Loop carried dependence analysis?
...the DependenceAnalysis pass. But the flow, anti dependence, etc methods are only reporting sequential and not loop carried dependencies. Does LLVM support loop carried dependency analysis? In addition, the distance and direction for dependent instructions always have invalid values; Dependence::getDirection() returns DVEntry::ALL which is the default value and Dependence::getDistance always returns null. E.g, for this input loop: for (int i = 1; i < 100; i++) { arr[i] = arr[i-1]; } This dependence is reported: %1 = load i32* %arrayidx.i, align 4 ---> store i32 %1, i32* %arrayidx2.i, ali...
2012 Jun 13
2
[LLVMdev] Structs passed by value
Hello, I'm trying to change the default behavior for how structures are passed to functions to use pass-by-value. Currently LLVM's default behavior is to pass structures by reference. I'm not disputing the benefits of this but I really want to change the default behavior for experimentation purposes. To this end I've changed the code in DefaultABIInfo::classifyArgumentType() to
2011 Feb 22
0
[LLVMdev] Passing structures as pointers, MSVC x64 style
Carl, See clang/lib/CodeGen/TargetInfo.cpp. // FIXME: mingw64-gcc emits 128-bit struct as i128 if (Size <= 128 && (Size & (Size - 1)) == 0) return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), Size)); It was my workaround, sorry. Please check to tweak the clause (128 to 64) and lemme
2012 Jun 14
0
[LLVMdev] Structs passed by value
Hi, On Wed, Jun 13, 2012 at 9:55 AM, Martinez, Javier E < javier.e.martinez at intel.com> wrote: > Hello,**** > > ** ** > > I’m trying to change the default behavior for how structures are passed to > functions to use pass-by-value. Currently LLVM’s default behavior is to > pass structures by reference. I’m not disputing the benefits of this but I > really want to
2011 Feb 21
2
[LLVMdev] Passing structures as pointers, MSVC x64 style
The MS x64 ABI calling convention (http://msdn.microsoft.com/en-us/library/ms235286(VS.80).aspx) says: Any argument that doesn’t fit in 8 bytes, or is not 1, 2, 4, or 8 bytes, must be passed by reference. Clang isn't doing that for us when passing our triple, x86_64-pc-win32-macho. Here's a simple example program: struct Guid { unsigned int Data1; unsigned
2020 Aug 30
5
BUG: complete misunterstanding of the MS-ABI
Objects compiled for the MS-ABI don't conform to it! Data types beyond 64 bit MUST BE returned by the callee via the hidden first argument allocated by the caller, NOT in XMM0! Demo/proof: from this source --- llvm-bug.c --- #ifndef __clang__ typedef struct { unsigned __int64 low; unsigned __int64 high; } __uint128_t; #else __attribute__((ms_abi)) #endif __uint128_t
2012 Oct 23
1
[LLVMdev] [cfe-commits] [PATCH/RFC, PowerPC] Extend 32-bit function arguments / return values
Chandler Carruth <chandlerc at google.com> wrote on 22.10.2012 20:53:54: > So, I'm not really sure if this is the right approach. I'd like some > folks from the LLVM side of things to chime in. > > In general, I'm not certain we want to continue growing our dependence > on the signext and zeroext attributes on return types, or whether we > want to do the
2012 Oct 22
4
[LLVMdev] [cfe-commits] [PATCH/RFC, PowerPC] Extend 32-bit function arguments / return values
So, I'm not really sure if this is the right approach. I'd like some folks from the LLVM side of things to chime in. In general, I'm not certain we want to continue growing our dependence on the signext and zeroext attributes on return types, or whether we want to do the extension in the frontend instead. Most of the targets in Clang currently eagerly zext or sext the return value to