summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add a FIXME reminder to remove ForceARMElfPIC switch.Jason W Kim2011-05-161-0/+4
| | | | llvm-svn: 131411
* sets bit 0 of the function address of thumb function in .symtabRafael Espindola2011-05-166-11/+37
| | | | | | | | | | ("T is 1 if the target symbol S has type STT_FUNC and the symbol addresses a Thumb instruction ;it is 0 otherwise." from "ELF for the ARM Architecture" 4.7.1.2) Patch by Koan-Sin Tan! llvm-svn: 131406
* Extra refactoring noticed by Eli Friedman.Rafael Espindola2011-05-161-9/+8
| | | | llvm-svn: 131405
* Don't do tail calls in a function that call setjmp. The stack might beRafael Espindola2011-05-163-37/+39
| | | | | | corrupted when setjmp returns again. llvm-svn: 131399
* Fix copy-pasto.Charles Davis2011-05-151-1/+1
| | | | llvm-svn: 131384
* Add stub methods to MCStreamer for emitting Win64 exception-handlingCharles Davis2011-05-151-0/+36
| | | | | | information. llvm-svn: 131382
* SimplifyCFG: Use ComputeMaskedBits to prune dead cases from switch instructions.Benjamin Kramer2011-05-141-1/+36
| | | | llvm-svn: 131345
* Avoid combining GEPs that might overflow at runtime.Stuart Hastings2011-05-141-1/+3
| | | | | | | | rdar://problem/9267970 Patch by Julien Lerouge! llvm-svn: 131339
* Fix a FIXME by moving the fast-isel implementation of the objectsize ↵Eli Friedman2011-05-142-23/+10
| | | | | | intrinsic from the x86 code to the generic code. llvm-svn: 131332
* Don't produce a vmovntdq if we don't have AVX support.Rafael Espindola2011-05-141-1/+1
| | | | llvm-svn: 131330
* Zap useless code; this hasn't done anything useful since fast-isel switched ↵Eli Friedman2011-05-141-29/+0
| | | | | | to being bottom-up (a very long time ago). llvm-svn: 131329
* Be a bit more permissive about symbols we don't understand. Just skip themJim Grosbach2011-05-131-4/+12
| | | | | | rather than throwing an error. llvm-svn: 131322
* ExecutionEngine: move createJIT() definition (v2)Dylan Noblesmith2011-05-132-19/+29
| | | | | | | As an ExecutionEngine class function, its definition really belongs in ExecutionEngine.cpp, not JIT.cpp. llvm-svn: 131320
* ExecutionEngine: push TargetMachine creation into clients (v2)Dylan Noblesmith2011-05-135-58/+28
| | | | | | | | In particular, into EngineBuilder. This should only impact the private API between the EE and EB classes, not external clients, since JITCtor and MCJITCtor are both protected members. llvm-svn: 131317
* ExecutionEngine: fix JIT/MCJIT selectTarget() duplication (v2)Dylan Noblesmith2011-05-139-117/+18
| | | | | | | This prepares for making JITCtor/MCJITCtor take a TargetMachine* directly from clients like EngineBuilder. llvm-svn: 131316
* Teach the RtDyld to tell the memory manager about how much space a functionJim Grosbach2011-05-131-3/+4
| | | | | | | actually takes rather than how much memory was allocated for it. This is more accurate and should help the manager pack things more effectively. llvm-svn: 131305
* Make codegen able to handle values of empty types. This is one wayRafael Espindola2011-05-133-6/+52
| | | | | | to fix PR9900. I will keep it open until sable is able to comment on it. llvm-svn: 131294
* Fix a source of non determinism in FindUsedTypes, use a SetVector instead of aJulien Lerouge2011-05-133-8/+8
| | | | | | | | set. rdar://9423996 llvm-svn: 131283
* Convert SimplifyIVUsers into a worklist instead of a single pass overAndrew Trick2011-05-131-1/+1
| | | | | | the users. llvm-svn: 131277
* Since I can't reproduce the failures from 131261, re-trying with aStuart Hastings2011-05-131-2/+6
| | | | | | simplified version. <rdar://problem/9298790> llvm-svn: 131274
* Revert 131266 and 131261 due to buildbot complaints.Stuart Hastings2011-05-131-9/+2
| | | | | | rdar://problem/9298790 llvm-svn: 131269
* Non-fast-isel followup to 129634; correctly handle branches controlledStuart Hastings2011-05-121-2/+9
| | | | | | | | | | | | | by non-CMP expressions. The executable test case (129821) would test this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC tester. Alas, the ARM assembly would be very difficult to check with FileCheck. The thumb2-cbnz.ll test is affected; it generates larger code (tst.w vs. cmp #0), but I believe the new version is correct. rdar://problem/9298790 llvm-svn: 131261
* Update comment.Evan Cheng2011-05-121-2/+0
| | | | llvm-svn: 131258
* Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.Devang Patel2011-05-122-3/+3
| | | | | | s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g llvm-svn: 131244
* MCJIT section loading should just skip non-text sections rather thanJim Grosbach2011-05-121-4/+4
| | | | | | | erroring out completely. Some modules produce sections that aren't referenced, so it's friendlier to clients like LLDB to just skip them, at least for now. llvm-svn: 131243
* Re-enable branchfolding common code hoisting optimization. Fixed a liveness ↵Evan Cheng2011-05-121-13/+38
| | | | | | test bug and also taught it to update liveins. llvm-svn: 131241
* Let Objective-C front-end identify class extension, in dwarf output, using ↵Devang Patel2011-05-122-0/+5
| | | | | | an attribute DW_AT_APPLE_objc_class_extension. llvm-svn: 131238
* Temporarily disable the transformation. It's breaking 186.crafty in some ↵Evan Cheng2011-05-121-0/+4
| | | | | | configuration. llvm-svn: 131235
* The MCJIT memory manager needs to initialize its Module member.Jim Grosbach2011-05-122-2/+2
| | | | llvm-svn: 131234
* Fix setting of isCommutable flag.Akira Hatanaka2011-05-122-16/+25
| | | | llvm-svn: 131233
* Re-commit 131172 with fix. MachineInstr identity checks should check deadEvan Cheng2011-05-124-17/+293
| | | | | | | | | markers. In some cases a register def is dead on one path, but not on another. This is passing Clang self-hosting. llvm-svn: 131214
* indvars: Added SimplifyIVUsers.Andrew Trick2011-05-121-85/+99
| | | | | | | Interleave IV simplifications. Currently involves EliminateComparison and EliminateRemainder. Next I'll add EliminateExtend. llvm-svn: 131210
* Remove an unused variable and move a couple others inside DEBUG.Matt Beaumont-Gay2011-05-111-6/+6
| | | | llvm-svn: 131208
* Address the last bit of relocation flag related divergence betweeenJason W Kim2011-05-112-25/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | LLVM and binutils. With this patch, there are no functional differences between the .o produced directly from LLVM versus the .s to .o via GNU as, for relocation tags at least, for both PIC and non-PIC modes. Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is necessary but not sufficient to determine whether the overall codegen mode is PIC or not. Why is this necessary? There is an incompatibility of how relocs are emitted in the .rodata section. Binutils PIC likes to emit certain relocs as section relative offsets. Non-PIC does not do this. So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which forces the objectwriter to pretend that all relocs are for PIC mode. Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected on llc. Todo: There are probably more issues for PIC mode on ARM/MC/ELF... Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s tests as well as expanded to cover the gamut. llvm-svn: 131205
* Turn this into a table, this will make more sense shortly.Eric Christopher2011-05-111-11/+29
| | | | | | Part of rdar://8470697 llvm-svn: 131200
* Identify end of prologue (and beginning of function body) using ↵Devang Patel2011-05-112-44/+40
| | | | | | DW_LNS_set_prologue_end line table opcode. llvm-svn: 131194
* Avoid hoisting spills when looking at a copy from another register that is alsoJakob Stoklund Olesen2011-05-111-7/+16
| | | | | | | | | | | | | about to be spilled. This can only happen when two extra snippet registers are included in the spill, and there is a copy between them. Hoisting the spill creates problems because the hoist will mark the copy for later dead code elimination, and spilling the second register will turn the copy into a spill. <rdar://problem/9420853> llvm-svn: 131192
* Fix encoding of Thumb BLX register instructions. Patch by Koan-Sin Tan.Owen Anderson2011-05-111-4/+8
| | | | llvm-svn: 131189
* Typo and missing checkin from r131186.Andrew Trick2011-05-111-1/+2
| | | | llvm-svn: 131187
* Bugpoint support for miscompilations that result in a crash.Andrew Trick2011-05-112-4/+8
| | | | | | | | | This change allows bugpoint to pinpoint the "opt" pass and bitcode segment responsible for a crash caused by miscompilation. At least it works well for me now, without having to create any custom execution wrappers. llvm-svn: 131186
* Fixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain).Nadav Rotem2011-05-111-1/+1
| | | | | | | | If there is a store after the load node, then there is a chain, which means that there is another user. Thus, asking hasOneUser would fail. Instead we ask hasNUsesOfValue on the 'data' value. llvm-svn: 131183
* Add custom lowering of X86 vector SRA/SRL/SHL when the shift amount is a ↵Nadav Rotem2011-05-112-11/+80
| | | | | | splat vector. llvm-svn: 131179
* Revert 131172 as it is causing clang to miscompile itself. I will tryRafael Espindola2011-05-113-268/+10
| | | | | | to provide a reduced testcase. llvm-svn: 131176
* Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmpBill Wendling2011-05-114-6/+6
| | | | | | | | intrinsic call. This prevents it from being reordered so that it appears *before* the setjmp intrinsic (thus making it completely useless). <rdar://problem/9409683> llvm-svn: 131174
* Add a late optimization to BranchFolding that hoist common instruction sequencesEvan Cheng2011-05-113-10/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | at the start of basic blocks to their common predecessor. It's actually quite common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size benefit. e.g. pushq %rax testl %edi, %edi jne LBB0_2 ## BB#1: xorb %al, %al popq %rdx ret LBB0_2: xorb %al, %al callq _foo popq %rdx ret => pushq %rax xorb %al, %al testl %edi, %edi je LBB0_2 ## BB#1: callq _foo LBB0_2: popq %rdx ret rdar://9145558 llvm-svn: 131172
* Optimize atomic lock or that doesn't use the result value.Eric Christopher2011-05-102-1/+83
| | | | | | | | Next up: xor and and. Part of rdar://8470697 llvm-svn: 131171
* Fix cmake again.Rafael Espindola2011-05-101-1/+0
| | | | llvm-svn: 131164
* Remove empty file.Nick Lewycky2011-05-101-0/+0
| | | | llvm-svn: 131162
* Avoid a gcc warning.Rafael Espindola2011-05-101-1/+2
| | | | llvm-svn: 131161
* Fix cmake build.Rafael Espindola2011-05-101-0/+1
| | | | llvm-svn: 131160
OpenPOWER on IntegriCloud