summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* BUILD_VECTOR was missing out on some prime opportunities to use SSE 4.1 inserts.Nate Begeman2010-03-241-75/+68
| | | | llvm-svn: 99423
* Revert Edwin's change that is breaking MultiSource/Applications/ClamAV/clamscan.Bob Wilson2010-03-241-3/+1
| | | | | | | | --- Reverse-merging r99400 into '.': D test/CodeGen/Generic/2010-03-24-liveintervalleak.ll U lib/CodeGen/LiveIntervalAnalysis.cpp llvm-svn: 99419
* Move OptChkCall off LibCallOptimization into StrCpyOpt.Evan Cheng2010-03-241-7/+6
| | | | llvm-svn: 99418
* Reverted r99326 which added NVdVmVCVTFrm, and later renamed to NVCVTFrm.Johnny Chen2010-03-242-25/+9
| | | | | | NVCVTFrm will later be used to describe "vcvt with fractional bits". llvm-svn: 99415
* Fix minor style issues.Dan Gohman2010-03-246-211/+206
| | | | llvm-svn: 99414
* Reverted r99376. The disassembler will deal with the 2-reg format of these twoJohnny Chen2010-03-241-3/+0
| | | | | | N3VX instructions using special case code. llvm-svn: 99409
* tweak the arm if conversion heuristicJim Grosbach2010-03-241-7/+1
| | | | llvm-svn: 99402
* Fix memory leak in liveintervals: the destructor for VNInfos must be called,Torok Edwin2010-03-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | otherwise the SmallVector it contains doesn't free its memory. In most cases LiveIntervalAnalysis could get away by not calling the destructor, because VNInfos are bumpptr-allocated, and smallvectors usually don't grow. However when the SmallVector does grow it always leaks. This is the valgrind shown leak from the original testcase: ==8206== 18,304 bytes in 151 blocks are definitely lost in loss record 164 of 164 ==8206== at 0x4A079C7: operator new(unsigned long) (vg_replace_malloc.c:220) ==8206== by 0x4DB7A7E: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (in /home/edwin/clam/git/builds/defaul t/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4F90382: llvm::VNInfo::addKill(llvm::SlotIndex) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libcl amav.so.6.1.0) ==8206== by 0x5126B5C: llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::M achineInstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) (in /home/edwin/clam/git/builds/defau lt/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x512725E: llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::MachineI nstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav .so.6.1.0) ==8206== by 0x51278A8: llvm::LiveIntervals::computeIntervals() (in /home/edwin/clam/git/builds/default/libclamav/.libs/libc lamav.so.6.1.0) ==8206== by 0x5127CB4: llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) (in /home/edwin/clam/git/builds/de fault/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAE935: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAEB10: llvm::FunctionPassManagerImpl::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAED3D: llvm::FunctionPassManager::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclamav/.l ibs/libclamav.so.6.1.0) ==8206== by 0x4D8BE8E: llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4D8CA72: llvm::JIT::getPointerToFunction(llvm::Function*) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) llvm-svn: 99400
* Finally land the InvokeInst operand reordering.Gabor Greif2010-03-2411-29/+38
| | | | | | | | | | | | I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. llvm-svn: 99399
* tighten a type and remove trailing whitespace, no functional changesGabor Greif2010-03-241-12/+12
| | | | llvm-svn: 99398
* increase const goodness and remove pointless getUser() callsGabor Greif2010-03-241-7/+9
| | | | llvm-svn: 99395
* cache result of UI.getOperandNo() instead of calling it twice, it is cheaper ↵Gabor Greif2010-03-241-2/+3
| | | | | | this way llvm-svn: 99394
* Fix comment typo.Duncan Sands2010-03-241-1/+1
| | | | llvm-svn: 99392
* MC: Direct all {fragment,section,symbol} address access through the ↵Daniel Dunbar2010-03-243-59/+91
| | | | | | MCAsmLayout object. llvm-svn: 99380
* dbg_value may end a block.Evan Cheng2010-03-241-4/+4
| | | | llvm-svn: 99378
* Mark VMOVDneon and VMOVQ as having the N2RegFrm form to help the disassembler.Johnny Chen2010-03-241-2/+5
| | | | llvm-svn: 99376
* Switch INC8r to defining its pattern in terms of X86inc_flagChris Lattner2010-03-241-4/+4
| | | | | | | and defining the add pattern with Pat<>, eliminating a use of parallel. llvm-svn: 99375
* Renamed NVdVmImmFrm and NVdVmVCVTFrm to the more proper N2RegFrm and NVCVTFrm,Johnny Chen2010-03-242-11/+11
| | | | | | respectively, and add some more comment. llvm-svn: 99373
* Remove the ConvertActions table and associated code, which is unused.Dan Gohman2010-03-241-1/+0
| | | | llvm-svn: 99372
* switch SDTBinaryArithWithFlags to be a multiple-result node as well.Chris Lattner2010-03-241-4/+4
| | | | llvm-svn: 99370
* Switch SDTUnaryArithWithFlags to being modeled as a two-resultChris Lattner2010-03-241-2/+4
| | | | | | | | | | | | | | ISD node. The only change in the generated isel code are comments like: < // Src: (X86dec_flag:i16 GR16:i16:$src) --- > // Src: (X86dec_flag:i16:i32 GR16:i16:$src) because now it knows that X86dec_flag returns both an i16 (for the result) and an i32 (for EFLAGS) in this case. Wewt. llvm-svn: 99369
* remove 64-bit or_is_add parallels.Chris Lattner2010-03-241-6/+3
| | | | llvm-svn: 99360
* remove useless or_is_add parallel's.Chris Lattner2010-03-241-12/+6
| | | | llvm-svn: 99359
* reduce nesting.Chris Lattner2010-03-241-9/+8
| | | | llvm-svn: 99358
* try being more permissive for if-conversion on ARM V7. see what the nightlyJim Grosbach2010-03-241-0/+9
| | | | | | test run permformance numbers say as to whether it helps. llvm-svn: 99355
* Revert "Add a late SSEDomainFix pass that twiddles SSE instructions to avoid ↵Jakob Stoklund Olesen2010-03-237-574/+0
| | | | | | | | domain crossings." This reverts commit 99345. It was breaking buildbots. llvm-svn: 99352
* MC: Sprinkle in some more interesting statistics.Daniel Dunbar2010-03-232-1/+28
| | | | llvm-svn: 99350
* llvm-mc: Fast path EvaluateAbsolute of constants.Daniel Dunbar2010-03-231-0/+6
| | | | llvm-svn: 99348
* [llvm_void_ty] is no longer needed for result types, Chris Lattner2010-03-232-5/+5
| | | | | | just use an empty result list. llvm-svn: 99346
* Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain ↵Jakob Stoklund Olesen2010-03-237-0/+574
| | | | | | | | | crossings. This is work in progress. So far, SSE execution domain tables are added to X86InstrInfo, and a skeleton pass is enabled with -sse-domain-fix. llvm-svn: 99345
* Renamed NVdImmFrm to N1RegModImmFrm.Johnny Chen2010-03-231-2/+2
| | | | llvm-svn: 99344
* add some accessors to callsite/callinst/invokeinst to checkChris Lattner2010-03-232-3/+16
| | | | | | | | for the noinline attribute, and make the inliner refuse to inline a call site when the call site is marked noinline even if the callee isn't. This fixes PR6682. llvm-svn: 99341
* Revert 99335. getTypeToExpandTo's iterative behavior is actuallyDan Gohman2010-03-231-3/+2
| | | | | | needed here. llvm-svn: 99339
* Remove getTypeToExpandTo, since it isn't adding much valueDan Gohman2010-03-231-2/+3
| | | | | | beyond just calling getTypeToTransformTo. llvm-svn: 99335
* Don't back past debug info intrinsics; SCEVExpander's strategyDan Gohman2010-03-231-12/+1
| | | | | | | for ignoring debug info intrinsics everywhere else is to advance past them, and it needs to be consistent. llvm-svn: 99332
* fix an infinite loop in Module::getEndianness, PR6684Chris Lattner2010-03-231-1/+1
| | | | | | patch by Alex Mac! llvm-svn: 99330
* Fix typo in the comment for N3VX class.Johnny Chen2010-03-231-1/+1
| | | | llvm-svn: 99328
* Add comment.Johnny Chen2010-03-231-0/+1
| | | | llvm-svn: 99327
* Add New NEON Format NVdVmVCVTFrm.Johnny Chen2010-03-232-9/+25
| | | | | | Converted some of the NEON vcvt instructions to this format. llvm-svn: 99326
* Skip debugging intrinsics when sinking unused invariants.Bill Wendling2010-03-231-10/+24
| | | | llvm-svn: 99324
* Add New NEON Format NVdVmImmFrm.Johnny Chen2010-03-231-11/+13
| | | | llvm-svn: 99322
* Ignore dbg_value's.Evan Cheng2010-03-231-5/+7
| | | | llvm-svn: 99321
* Teach isSafeToClobberEFLAGS to ignore dbg_value's. We need a ↵Evan Cheng2010-03-231-3/+13
| | | | | | MachineBasicBlock::iterator that does this automatically? llvm-svn: 99320
* Code clean up.Evan Cheng2010-03-231-6/+6
| | | | llvm-svn: 99319
* Fix VLDMQ and VSTMQ instructions to use the correct encoding and address modes.Bob Wilson2010-03-234-30/+59
| | | | | | | | | | These instructions are only needed for codegen, so I've removed all the explicit encoding bits for now; they should be set in the same way as the for VLDMD and VSTMD whenever we add encodings for VFP. The use of addrmode5 requires that the instructions be custom-selected so that the number of registers can be set in the AM5Opc value. llvm-svn: 99309
* Fix bad indentation, 80-column violations, and trailing whitespace.Bob Wilson2010-03-231-52/+60
| | | | llvm-svn: 99295
* Add New NEON Format NVdImmFrm.Johnny Chen2010-03-231-7/+8
| | | | | | Ref: A7.4.6 One register and a modified immediate value. llvm-svn: 99288
* Teach simplify libcall to transform __strcpy_chk to __memcpy_chk to enable ↵Evan Cheng2010-03-232-6/+45
| | | | | | optimizations down stream. llvm-svn: 99282
* add assert in argpromotion, which cannot triggerGabor Greif2010-03-232-6/+7
| | | | | | | | if Function::hasAddressTaken works as advertised also included some cosmetic cleanups llvm-svn: 99276
* word-oGabor Greif2010-03-231-1/+1
| | | | llvm-svn: 99275
OpenPOWER on IntegriCloud