search for: armtargetmachine

Displaying 20 results from an estimated 34 matches for "armtargetmachine".

2013 Apr 23
2
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
On Tue, Apr 23, 2013 at 10:29:32AM +0400, Anton Korobeynikov wrote: > Hello > > There is not support for big endian ARM at all. I guess he need to change the data layout string in ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp) from "e" to "E" to get big endian output? Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~...
2013 Apr 23
0
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
> I guess he need to change the data layout string in > ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp) > from "e" to "E" to get big endian output? That would be a start, but I'd expect a significant number of bugs where the backend writers have assumed ARM was little-endian (lib/Target/Mips, which *does* support both, has many more...
2012 Jun 03
0
[LLVMdev] Big endian ARM?
...little endian address space. > > I've been snooping around, but can't seem to find where the conversion to a > byte operation is done. Could someone point me in the right direction? > I've figured out my problem. I didn't adjust the data layout description string in ARMTargetMachine.cpp for big endian targets. This brings up another question. clang has its own set of description strings for varying ABIs, etc. Should those strings somehow override in the code generators? -Rich
2013 Apr 23
0
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
Hello There is not support for big endian ARM at all. On Tue, Apr 23, 2013 at 9:26 AM, gamma_chen <gamma_chen at yahoo.com.tw> wrote: > The llvm ARM backend is little endian elf output as my examination as > below. Is it support bid endian by other llc options as below? > > llc -filetype=obj -march=arm // little endian > llc -filetype=obj -march=? or -otheroption=? // to
2012 Jun 02
3
[LLVMdev] Big endian ARM?
Hi, I've been trying to set up clang/LLVM to compile for big endian ARM and I need a little help. The code generation works for the most part and most of my regression tests pass, but I noticed that code like this extern void g(void); int *p; int main() { if (*p & 0x01000000) g(); } generates ldr r0, [r0] ldrb r0, [r0, #3]
2013 Apr 23
3
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
The llvm ARM backend is little endian elf output as my examination as below. Is it support bid endian by other llc options as below? llc  -filetype=obj -march=arm // little endian llc  -filetype=obj -march=? or -otheroption=? // to output big endian Jonathan -------------- next part -------------- An HTML attachment was scrubbed... URL:
2010 Jan 20
2
[LLVMdev] [LLVMDev] Is it possible to implement target specific optimizations which can be applied after instruction selection or later?
Dear developers. My question is the same as the title. Is there any way to implement target specific optimizations after instruction selection or later? I cannot find any related document. Please let me know. Thanks in advance. Minwook Ahn -------------- next part -------------- An HTML attachment was scrubbed... URL:
2010 Jan 22
0
[LLVMdev] [LLVMDev] Is it possible to implement target specific optimizations which can be applied after instruction selection or later?
Yes. There are lots of examples of this. For example ARM target has a number of specific optimization passes. See ARMTargetMachine.cpp addPreEmitPass() etc. for examples of how they are added to codegen pass manager. Evan On Jan 19, 2010, at 11:34 PM, minwook Ahn wrote: > Dear developers. > > My question is the same as the title. > Is there any way to implement target specific optimizations after instruction se...
2012 Jun 03
2
[LLVMdev] Big endian ARM?
...gt;> >> I've been snooping around, but can't seem to find where the conversion to a >> byte operation is done. Could someone point me in the right direction? >> > > I've figured out my problem. I didn't adjust the data layout description string > in ARMTargetMachine.cpp for big endian targets. > > This brings up another question. clang has its own set of description strings > for varying ABIs, etc. Should those strings somehow override in the code > generators? The current design is that the frontend (if it attaches a TD string) is *required* t...
2009 May 28
0
[LLVMdev] JITCodeEmitter patch - up for comments
...t/PowerPC/PPCCodeEmitter.cpp * Parameterized to support JITCodeEmitter and in future ObjectCodeEmitter lib/Target/PowerPC/PPCJITInfo.h lib/Target/PowerPC/PPCJITInfo.cpp * Replaced references to MachineCodeEmitter with JITCodeEmitter. lib/Target/ARM/ARM.h lib/Target/ARM/ARMTargetMachine.h lib/Target/ARM/ARMTargetMachine.cpp lib/Target/ARM/ARMCodeEmitter.cpp * Parameterized to support JITCodeEmitter and in future ObjectCodeEmitter lib/Target/ARM/ARMJITInfo.h lib/Target/ARM/ARMJITInfo.cpp * Replaced references to MachineCodeEmitter with JITCodeEmitter....
2012 Feb 09
1
[LLVMdev] Questions on MachineFunctionPass and relaxation of pcrel calls (ARM/thumb2)
While implementing a MachineFunctionPass that runs as part of the ARMTargetMachine::addPreEmitPass(), I've run into a problem. This particular MFP can drastically increase the size (in MachineInstr count) of the MachineFunction that it processes, so much so that there is a real danger of pcrel calls and branches that use immediate offsets to not be sufficient. A naive test c...
2006 Nov 03
4
[LLVMdev] is createCFGSimplificationPass unused?
...t $17,15,$0 zapnot $16,15,$1 cmpeq $1,$0,$0 beq $0,$BB1_2 #return $BB1_1: #cond_true bis $31,$31,$0 ret $31,($26),1 $BB1_2: #return lda $0,1($31) ret $31,($26),1 ---------------------------------- I have added createCFGSimplificationPass in ARMTargetMachine::addInstSelector to fix this problem. Is this the correct solution? I think that more architectures might benefit... Best Regards, Rafael
2010 Nov 16
1
[LLVMdev] Build Attributes Proposal
...efinitions, other manufacturers are free to > ignore. I think there are several common use cases for these attributes - 1. to mark what ISA a function is compiled for: (i.e. is it a thumb16/thumb32/ARM?) 2. to constrain the generated code to use specific co-processors. At least for case 2, the ARMTargetMachine/ARMSubtarget contains a distinct set of flags which should be output in the file scope section of the attributes For case 1, I don't know how common it is for the same executable to cross thumb boundaries - (given that16bit thumb has limits on register usage etc..) but I suppose its possible....
2010 Apr 04
1
[LLVMdev] How to specify the subtarget instruction set for LLVM unit in ARM-backend?
Dear developers! I’d like to ask you a question concerning the implementation of one algorithm for the generation of energy-efficient code for ARM processors. Unfortunately, the documentation on this subject is incomplete on your site, so could you please explain how to implement my algorithm. Without going into details, I would like to say, that the implementation of this algorithm
2010 Jul 23
1
[LLVMdev] "Cannot call createPass on PassInfo without default ctor!"
...to the ARM back end I'm getting quite a lot of this assertion failure: Pass.cpp:255: llvm::Pass* llvm::PassInfo::createPass() const: Assertion `NormalCtor && "Cannot call createPass on PassInfo without default ctor!"' failed. A simple way to get it is to add two lines to ARMTargetMachine.cpp: #include "llvm/Transforms/Scalar.h" and PM.add(createSinkingPass()); in addInstSelector just before this line: PM.add(createARMISelDag(*this, OptLevel)); Then run anything through the ARM back end, for example: clang -cc1 -triple thumbv7-eabi -O3 -target-cpu cortex-a8 x.c...
2012 Jun 03
0
[LLVMdev] Big endian ARM?
...ng around, but can't seem to find where the > >> conversion to a byte operation is done. Could someone point me in > >> the right direction? > >> > > > > I've figured out my problem. I didn't adjust the data layout > > description string in ARMTargetMachine.cpp for big endian targets. > > > > This brings up another question. clang has its own set of > > description strings for varying ABIs, etc. Should those strings > > somehow override in the code generators? > > The current design is that the frontend (if it attaches...
2012 Sep 17
0
[LLVMdev] Profile Info with Machine Function Pass Fails
...g. I have used MachineProfileInfo and Profile estimator as dependent passes over my pass. I am sending you the code for my pass. the error says: void llvm::PMTopLevelManager::schedulePass(llvm::Pass*): Assertion `PI && "Expected required passes to be initialized"' failed. In *ARMTargetMachine.cpp, function bool ARMPassConfig::addPreEmitPass() *the following has been added *PassRegistry &Registry=*PassRegistry::getPassRegistry(); initializeARMInstrStatsPass(Registry);* The program is executed with the following command : *clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm...
2006 Nov 03
0
[LLVMdev] is createCFGSimplificationPass unused?
...tionPass was disabled on 2006/09/04. > This causes some problems for architectures that use conditional moves > to implement select (alpha and ARM). For example, on 2006/09/03 a "if > (a) return 0; else return 1;" compiled to > I have added createCFGSimplificationPass in > ARMTargetMachine::addInstSelector to fix this problem. Is this the > correct solution? I think that more architectures might benefit... Please don't do that. Instead, please implement the TargetInstrInfo branch analysis hooks so that the branch folding pass can do this. Given info about branches, the pas...
2014 Nov 18
3
[LLVMdev] [RFC] Embedding command line options in bitcode (PR21471)
..., if the default value is known to be "false". I also made the following changes in the patch: 1. In the constructor of MachineFunction, call the version of getSubtargetImpl that takes a Function parameter, so that it gets the Subtarget specific to the Function being compiled. 2. Change ARMTargetMachine::SubtargetMap to be a DenseMap<Function*, unique_ptr<ARMSubtarget>>. This is just a temporary change to ease debugging and should be reverted to a StringMap or changed to another type of map later. On Mon, Nov 17, 2014 at 11:40 AM, Eric Christopher <echristo at gmail.com> wrote:...
2012 Sep 26
0
[LLVMdev] Error while loading profile information
...sis(Registry); initializeInstrumentation(Registry); initializeCodeGen(Registry); initializeTarget(Registry); printf("\n%s:%d",__FILE__,__LINE__); fflush(stdout); return new ARMInstrStats(PIL); } } The following changes have been made to the file ARMTargetMachine.cpp in the function bool ARMPassConfig::addPreEmitPass(): bool ARMPassConfig::addPreEmitPass() { if (getARMSubtarget().isThumb2()) { if (!getARMSubtarget().prefers32BitThumb()) PM->add(createThumb2SizeReductionPass()); // Constant island pass work on unbundled instructions....