search for: armcc

Displaying 20 results from an estimated 39 matches for "armcc".

Did you mean: amcc
2017 Feb 13
2
ARM Backend: Emit conditional move
...0, r1 moveq r2, #1 To implement this, I first emit a compare instruction and then I'm trying to emit the conditional move, which is failing. BuildMI(&MBB, DL, TII->get(ARM::CMPrr)) .addReg(MI.getOperand(1).getReg()) .addReg(MI.getOperand(2).getReg()) .addImm(ARMCC::EQ); BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(ARM::MOVr), MI.getOperand(0).getReg()) .addImm(ARMCC::EQ) .addImm(1) .addReg(0); // 's' bit But with the last conditional move, I am a bit lost. The result of the condional move should...
2010 Sep 27
2
[LLVMdev] Vectors in structures
...ing them in llvm-gcc and clang is for compatibility for ARM's specifications and with ARM's RVCT compiler.  If ARM does not care about those things, I'd love to remove the struct wrappers from llvm. As Al said earlier, you definitely don't need the structures for compatibility with armcc. As far as the LLVM back-end is concerned, with or without structures, the instruction selection works a treat and generates correct NEON instructions. If the final object has the correct instructions and follows ARM ABIs, there is no point in keeping IR compatibility. I also noticed that Clang...
2010 Sep 27
0
[LLVMdev] Vectors in structures
...m-gcc and clang is for compatibility for ARM's specifications and with ARM's RVCT compiler. If ARM does not care about those things, I'd love to remove the struct wrappers from llvm. > > As Al said earlier, you definitely don't need the structures for > compatibility with armcc. An implementation, such as in GCC, that does not use structures is compatible with ARM's specification in only one direction. GCC will accept any code written for RVCT, but not the other way around. And, as Al pointed out, there are also compatibility issues with how you can initialize vect...
2010 Sep 28
2
[LLVMdev] Vectors in structures
...an initialize vectors.  (In fact, if you stick to the documented interfaces, the only way you can initialize a vector to an arbitrary value is by loading from memory.) Hi Bob, Can you clarify what compatibility problems you had with GCC? And that by using structures in Clang you made it work with armcc? Is it just a source code compatibility issue? > Can we get an official position from ARM on this? I really don't know what you want here. I can't tell you that it will be safe to remove the structures from Clang, since I don't know enough about the vector types (and all other b...
2008 Jul 15
2
[LLVMdev] Regarding ARM CodeGen
..." to "ADDS"( provided we somehow determine that we need ADDS here), then everything else related to ARM instruction generation has been handled in current infrastructure. Is this correct or do we need to modify other things also? 2. In file ARMISelLowering.cpp, inside function FPCCtoARMCC, condition ISD::SETO generates ARMCC::VC ( Overflow clear) condition. Thus, if we are able to appropriately generate ISD::SETO inside SDNode for overflow clear and then map it to ARMCC::VC instruction in IntCCtoARMCC, then will that be enough to generate the an instruction like "addvc"?...
2008 Jul 15
0
[LLVMdev] Regarding ARM CodeGen
...ht fix is to add a pass to optimize away the cmp instruction by *folding* it in the preceding add when it's legal. Ideally this will be a target independent pass that x86 and other targets can take advantage of as well. > > > 2. In file ARMISelLowering.cpp, inside function FPCCtoARMCC, > condition ISD::SETO generates ARMCC::VC ( Overflow clear) condition. > Thus, if we are able to appropriately generate ISD::SETO inside > SDNode for overflow clear and then map it to ARMCC::VC instruction > in IntCCtoARMCC, then will that be enough to generate the an > in...
2010 Sep 28
0
[LLVMdev] Vectors in structures
...39;t know all the decisions taken > on NEON specs or why GCC had the design decisions it had. But I can't > possibly believe that they have to do what ARM says they should. Can we ask Lee or Richard or somebody for a ruling on why the spec is the way it is? It would probably also help if armcc's arm_neon.h were available publicly for us to examine to further the discussion. What's being debated here seems like an optimization for compile time. I'm certainly in favor of that, but I can think of a ton of things I'd rather that we work on first that matter for correctness....
2011 Mar 17
0
[LLVMdev] Writing unit tests for DWARF?
...the beginning of the tree while LLVM only does when needed (metadata-style). The relocation sections in GCC are huge and they also use debug_loc in many more cases than LLVM, for instance extern functions, global variables and the cases I mentioned in my example before. Of course, Dwarf produced by Armcc is also different (though, closer to what GCC does, for obvious reasons). One way we could do this, slowly and painfully, but surely, is to generate Dwarf, use the debugger to make sure that Dwarf actually produces what GDB is expecting (you probably have many cases already) and take a snapshot of...
2010 Sep 28
3
[LLVMdev] Vectors in structures
...1) above seems to say exactly that. You're taking conclusions on your own thoughts... please don't put words in my mouth. The only point I made in my first email is that using structures in the IR was not necessary, regardless of the headers. If you want to keep source compatibility with armcc, I welcome and can help you. -- cheers, --renato http://systemcall.org/ Reclaim your digital rights, eliminate DRM, learn more at http://www.defectivebydesign.org/what_is_drm
2011 Mar 17
2
[LLVMdev] Writing unit tests for DWARF?
On Mar 17, 2011, at 8:44 AM, Renato Golin wrote: >> dwarfdump --verify will do this. > > Is this being used in LLVM tests? This is an idea. It is not used in llvm/test tests. > I had a look at your debug tests in clang and they're similar to what I do here. > > The problem with debug tests is that it doesn't depend only on the > compiler, but on the debugger
2010 Sep 27
0
[LLVMdev] Vectors in structures
Support for NEON intrinsics in clang is not complete. Poly types in general are known to be an issue, and the vceq_p8 in your example definitely needs an intrinisic. It should work with llvm-gcc. Can you clarify ARM's position on those structure types? It sounds like you are advocating that we get rid of them. The only reason we've been using them in llvm-gcc and clang is for
2015 Dec 04
3
[RFC][ARM] Add support for embedded position-independent code (ROPI/RWPI)
Hi, We currently have a downstream patch (attached) which implements some new addressing modes that enable position-independent code for small embedded systems. Is this something that would be accepted upstream? I think the ARM backend changes are fairly uncontroversial, but the clang changes introduce a lot of ROPI/RWPI specific changes in otherwise target-independent code. If the clang changes
2010 Sep 22
0
[LLVMdev] Vectors in structures
...ite code for GCC's implementation. GCC lets you freely > intermix vector types, or at least integer vector types, as long as > they have the same total size. Yes, other problem cases might be int16x4_t x = { 1, 2, 3, 4 }; // gcc only? struct float4: float32x4_t { ... }; // armcc only? We ought to be more specific about the portable subset, and give more guidance on potential portability issues. Probably that would start with a common specification for the NEON intrinsics, independent of any given ARM or GNU compiler release. Al -- IMPORTANT NOTICE: The contents of this...
2010 Sep 28
0
[LLVMdev] Vectors in structures
...In fact, if you stick to the documented interfaces, the only way you can initialize a vector to an arbitrary value is by loading from memory.) > > Hi Bob, > > Can you clarify what compatibility problems you had with GCC? And that > by using structures in Clang you made it work with armcc? > > Is it just a source code compatibility issue? Yes, there are multiple issues but they all involve source compatibility. Here is an example: #include <arm_neon.h> uint32x2_t test(int32x2_t x) { return vadd_u32(x, x); } This works fine with GCC because int32x2_t and uint32x2_t ar...
2008 Jul 14
0
[LLVMdev] Regarding ARM CodeGen
On Jul 14, 2008, at 12:59 PM, kapil anand wrote: > Hi all, > > I am using LLVM compiler and CodeGen for generating ARM binaries. > > I was going through the code for ARM backend. I noticed that the ARM > Condition field( Bits 31-28) is generated by converting the > conditions used in icmp and branch. For example, if I have following > C Code > > int a,b,c,d;
2013 Oct 25
0
[LLVMdev] Add support for ldr pseudo instruction in ARM integrated assembler
...e llvm integrated assembler could > support this feature as well. > Hi David, As much as I think that it's important to add support for old codebases to be compiled, I also have to consider the importance of compatibility and compiler sanity. Adding support for this GNU extension (that ARMCC also seem to support) can: 1. Add multiple representations to the same operation, which is fine when you're converting ASM into binary, but not so much when you're doing the reverse. We have been trying to deprecate pre-UAL and GNU-extensions as much as possible, and this is a move that i...
2018 Mar 23
1
ARM Backend BuildMI operand issues
...thread on the mailing list: http://lists.llvm.org/pipermail/llvm-dev/2017-February/110086.html With your help and the information about the condition codes I was able to resolve the error:         BuildMI(BB, BB.end(), DL, TII->get(ARM::tCMPi8)).addReg(ARM::R0).addImm(1).add(predOps(ARMCC::AL); But how do I know how many and which condition codes each instruction needs? [MOVi takes 3 operands relating to the condition code (all after the immediate)] There is no info about that in the ARMInstrThumb.td file. -Julius On 03/23/2018 12:18 AM, Tom Stellard wrote: > On 03/22/2018 0...
2019 Mar 29
2
Proposal for O1/Og Optimization and Code Generation Pipeline
> > > > - Dead code elimination (ADCE, BDCE) > > > Regarding BDCE: The trivialized values might indeed be irrelevant to > later calculations, but might harm the debugging experience? If BDCE > only was applied at O2 and higher, that's likely not a huge loss. > Regular DCE (meaning without the bit-tracking parts) is probably fine > for O1. > > >
2010 Sep 27
2
[LLVMdev] Vectors in structures
On 27 September 2010 18:19, Bob Wilson <bob.wilson at apple.com> wrote: > I'm not sure what you mean by this.  The llvm intrinsics and built-in vector operations use plain vectors regardless of the front-end.  The structures are only relevant for things like argument passing and copying -- you can't do anything else with them.  Can you post an example of the 5X IR code size that
2008 Jul 14
2
[LLVMdev] Regarding ARM CodeGen
Hi all, I am using LLVM compiler and CodeGen for generating ARM binaries. I was going through the code for ARM backend. I noticed that the ARM Condition field( Bits 31-28) is generated by converting the conditions used in icmp and branch. For example, if I have following C Code int a,b,c,d; c = a+b; if(c==0) d = a + 10; Then I get ( Assembly Instructions with opcodes only) add *cmp*