summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Temporarily disable use of divmod compiler-rt functions for iOS.Bob Wilson2011-05-031-6/+0
| | | | llvm-svn: 130766
* Fold ARM coprocessor intrinsics patterns into the instructions defs wheneverBruno Cardoso Lopes2011-05-033-96/+73
| | | | | | it's possible. llvm-svn: 130764
* Add a few ARM coprocessor intrinsics. Testcases includedBruno Cardoso Lopes2011-05-034-0/+71
| | | | llvm-svn: 130763
* If the front end has emitted llvm.dbg.cu and other debug info anchors (clang ↵Devang Patel2011-05-031-27/+49
| | | | | | does it now) then use them directly. This saves one scan of entire module, to collect debug info, which in turns saves few machine cycles at compile time. llvm-svn: 130759
* Use llvm.dbg.cu named metadata to collect compile units.Devang Patel2011-05-031-0/+4
| | | | llvm-svn: 130756
* Remove unused variables caught by GCC's -Wunused-but-set-variable.Benjamin Kramer2011-05-033-5/+0
| | | | llvm-svn: 130755
* Add pentium{3,4}m cpus. Patch by Alexander Best!Michael J. Spencer2011-05-031-0/+2
| | | | llvm-svn: 130749
* xmm0 is an implicit parameter in this and so shouldn't be in theEric Christopher2011-05-031-2/+2
| | | | | | | | string template. Fixes rdar://8493866 llvm-svn: 130747
* Add an unfolded offset field to LSR's Formula record. This is used toDan Gohman2011-05-033-9/+76
| | | | | | | | model constants which can be added to base registers via add-immediate instructions which don't require an additional register to materialize the immediate. llvm-svn: 130743
* Other parts of the SelectionDAG framework assume that targets use their ↵Owen Anderson2011-05-021-1/+1
| | | | | | pointer type for vector indices. Make the vector unrolling code respect that. llvm-svn: 130733
* Scanning entire basic block may be too expensive in terms of compile time. ↵Devang Patel2011-05-021-6/+4
| | | | | | Instead, just use whatever location info first non-phi instruction has. llvm-svn: 130729
* Handle <def,undef> in the second loop as well.Jakob Stoklund Olesen2011-05-021-1/+3
| | | | llvm-svn: 130718
* Apparently the check for direct calls is unnecessary.Eric Christopher2011-05-021-2/+2
| | | | llvm-svn: 130716
* Use the PrintReg adaptor to correctly print live-in registers in debug output.Jakob Stoklund Olesen2011-05-021-17/+5
| | | | llvm-svn: 130715
* Only ignore <undef> use operands, keep the <def,undef> ops.Jakob Stoklund Olesen2011-05-021-1/+4
| | | | | | | | Def operands may also have an <undef> flag, but that just means that a sub-register redef doesn't actually read the super-register. For physical registers, it has no meaning. llvm-svn: 130714
* Fix PR9579: when simplifying a compare to "true" or "false", and it wasDuncan Sands2011-05-021-18/+22
| | | | | | a vector compare, generate a vector result rather than i1 (and crashing). llvm-svn: 130706
* Remove unused variable.Duncan Sands2011-05-021-1/+1
| | | | llvm-svn: 130705
* Emit debug info for global variables first.Devang Patel2011-05-021-5/+5
| | | | | | | | | | | | | This works around a limitation in gdb which is reported by following inherit.exp test failures from gdb testsuite. gdb.cp/inherit.exp: print g_vB.vB::vb gdb.cp/inherit.exp: print g_vB.vB::vx gdb.cp/inherit.exp: print g_vC.vC::vc gdb.cp/inherit.exp: print g_vC.vC::vx gdb.cp/inherit.exp: print g_vD.vB::vb ... llvm-svn: 130702
* Move some rem transforms out of instcombine and into instsimplify.Duncan Sands2011-05-022-42/+136
| | | | | | | This automagically provides a transform noticed by my super-optimizer as occurring quite often: "rem x, (select cond, x, 1)" -> 0. llvm-svn: 130694
* Add 130690 back.Rafael Espindola2011-05-021-1/+1
| | | | llvm-svn: 130693
* Only produce the eh_frame section if we have at least one personality function.Rafael Espindola2011-05-021-7/+9
| | | | llvm-svn: 130692
* Revert while I debug the tests that use march but not mtriple.Rafael Espindola2011-05-021-1/+1
| | | | llvm-svn: 130691
* Move ppc OS X to cfi too. I am building it on an old ppc mini, but it will ↵Rafael Espindola2011-05-021-1/+1
| | | | | | take some time. llvm-svn: 130690
* Minimize the slot indexes spanned by register ranges created when splitting.Jakob Stoklund Olesen2011-05-023-5/+13
| | | | | | | | | | | | | When an interfering live range ends at a dead slot index between two instructions, make sure that the inserted copy instruction gets a slot index after the dead ones. This makes it possible to avoid the interference. Ideally, there shouldn't be interference ending at a deleted instruction, but physical register coalescing can sometimes do that to sub-registers. This fixes PR9823. llvm-svn: 130687
* In option typo correction, consider -foo=VALUE flags as two distinct parts. TheNick Lewycky2011-05-021-5/+12
| | | | | | | | | | comments claimed it did this, but the LHS value was actually an unused variable. The new system considers only the '-foo' part when comparing it for typos against flags that have values, but still look at the whole string for flags that don't. That way, we'll still correct '-inst=combine' to '-instcombine'. llvm-svn: 130685
* Remove dead variable pointed out by GCC 4.6 warnings, and reflow this a littleNick Lewycky2011-05-021-4/+1
| | | | | | to scope a variable more tightly per llvm coding style. No functional change. llvm-svn: 130684
* enhance memcpyopt to obey -fno-builtin and friends. This addresses aChris Lattner2011-05-011-0/+17
| | | | | | problem reported on cfe-dev. llvm-svn: 130661
* Add r130623 back now that ELF has been fixed to work with -fno-dwarf2-cfi-asm.Rafael Espindola2011-05-012-1/+4
| | | | llvm-svn: 130658
* Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl ↵NAKAMURA Takumi2011-05-011-31/+2
| | | | | | | | | instead of the versions of individual libraries. autoconf: Add checking ELM_Callback decl for mingw32 and mingw-w64. cmake/config-ix.cmake: Add checking ELM_Callback decl for win32. llvm-svn: 130657
* Remove an unused variable from this function introduced in r130637,Chandler Carruth2011-05-011-1/+0
| | | | | | likely a result of copy/paste. llvm-svn: 130640
* GCC uses a different encoding of pointers in the FDE when usingRafael Espindola2011-05-018-18/+32
| | | | | | -fno-dwarf2-cfi-asm. Implement the same behavior. llvm-svn: 130637
* I forgot these files in the previous commit.Rafael Espindola2011-05-012-0/+2
| | | | llvm-svn: 130635
* Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola2011-05-0110-54/+37
| | | | | | | | | | for all symbol differences and can drop the old EmitPCRelSymbolValue method. This also make getExprForFDESymbol on ELF equal to the one on MachO, and it can be made non-virtual. llvm-svn: 130634
* Revert the previous patch while I figure out how to make llvm-gccRafael Espindola2011-04-303-7/+1
| | | | | | less agressive about disabling cfi on linux :-( llvm-svn: 130626
* X86AsmPrinter doesn't know how to handle the X86II::MO_GOT_ABSOLUTE_ADDRESS flagJakob Stoklund Olesen2011-04-301-0/+12
| | | | | | | | | | | | | | after folding ADD32ri to ADD32mi, so don't do that. This only happens when the greedy register allocator gets itself in trouble and spills %vreg9 here: 16L %vreg9<def> = MOVPC32r 0, %ESP<imp-use>; GR32:%vreg9 48L %vreg9<def> = ADD32ri %vreg9, <es:_GLOBAL_OFFSET_TABLE_>[TF=1], %EFLAGS<imp-def,dead>; GR32:%vreg9 That should never happen, the live range should be split instead. llvm-svn: 130625
* Enable CFI on OS X.Rafael Espindola2011-04-303-1/+7
| | | | | | | | | | | | | | | Currently the output should be almost identical to the one produced by CodeGen to make the transition easier. The only two differences I know of are: * Some files get an extra advance loc of size 0. This will be fixed when relaxations are enabled. * The optimization of declaring an EH symbol as an external variable is not implemented. This is a subset of adding the nounwind attribute, so we if really this at -O0 we should probably do it at the IL level. llvm-svn: 130623
* When a physreg is live-in and live through a basic block, make sure its liveJakob Stoklund Olesen2011-04-301-1/+1
| | | | | | | | range covers the entire block. The live range can't be terminated at a random instruction. llvm-svn: 130619
* InstCombine: Turn (zext A) udiv (zext B) into (zext (A udiv B)). Same for ↵Benjamin Kramer2011-04-301-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | urem or constant B. This obviously helps a lot if the division would be turned into a libcall (think i64 udiv on i386), but div is also one of the few remaining instructions on modern CPUs that become more expensive when the bitwidth gets bigger. This also helps register pressure on i386 when dividing chars, divb needs two 8-bit parts of a 16 bit register as input where divl uses two registers. int foo(unsigned char a) { return a/10; } int bar(unsigned char a, unsigned char b) { return a/b; } compiles into (x86_64) _foo: imull $205, %edi, %eax shrl $11, %eax ret _bar: movzbl %dil, %eax divb %sil, %al movzbl %al, %eax ret llvm-svn: 130615
* Use SimplifyDemandedBits on div instructions.Benjamin Kramer2011-04-301-0/+4
| | | | | | This folds away silly stuff like (a&255)/1000 -> 0. llvm-svn: 130614
* Implement MCAsmStreamer::EmitEHSymAttributes. Doing this in the asm streamerRafael Espindola2011-04-301-3/+31
| | | | | | | is a bit ugly, but doing it on the base MCStreamer would be redundant with the object streamer which does it using SD. llvm-svn: 130611
* Handle PrivateExtern eh symbols.Rafael Espindola2011-04-301-0/+2
| | | | llvm-svn: 130609
* Avoid using stale entries form the sibling value map.Jakob Stoklund Olesen2011-04-301-5/+21
| | | | | | | This could happen when trying to use a value that had been eliminated after dead code elimination and folding loads. llvm-svn: 130597
* Use hysteresis for local live range splitting as well.Jakob Stoklund Olesen2011-04-301-4/+4
| | | | llvm-svn: 130596
* Add all the plumbing needed for MC to expand cfi to the old tables inRafael Espindola2011-04-305-6/+49
| | | | | | | the final assembly. It is the same technique used when targeting assemblers that don't support .loc. llvm-svn: 130587
* Implement MCAsmStreamer::EmitDwarfAdvanceFrameAddr.Rafael Espindola2011-04-303-22/+34
| | | | llvm-svn: 130585
* Update comment.Jakob Stoklund Olesen2011-04-301-2/+2
| | | | llvm-svn: 130582
* Use a greedy algorithm for allocating registers.Jakob Stoklund Olesen2011-04-301-3/+3
| | | | llvm-svn: 130568
* Print out the 'nontemporal' info on a store.Bill Wendling2011-04-291-0/+4
| | | | llvm-svn: 130562
* Make FastEmit_ri_ try a bit harder to succeed for supported operations; ↵Eli Friedman2011-04-291-2/+7
| | | | | | FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM. llvm-svn: 130560
* 80-col.Eric Christopher2011-04-291-8/+9
| | | | llvm-svn: 130558
OpenPOWER on IntegriCloud