summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the issue that r143552 was trying to address the _right_ way. ↵Owen Anderson2011-11-021-2/+6
| | | | | | One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction. llvm-svn: 143557
* Replace tabs I added in this new line of code with spaces.Kevin Enderby2011-11-021-1/+1
| | | | | | Thanks to Nick for spotting this! llvm-svn: 143556
* The rules disallowing single-register reglist operands only apply to the POP ↵Owen Anderson2011-11-021-5/+1
| | | | | | alias, not to LDM/STM instructions. Revert r143552. llvm-svn: 143553
* Register list operands are not allowed to contain only a single register. ↵Owen Anderson2011-11-021-1/+5
| | | | | | Alternate encodings are used in that case. llvm-svn: 143552
* Don't print two 0x prefixes when printing an address.Benjamin Kramer2011-11-021-1/+1
| | | | llvm-svn: 143549
* Factor out an EmitIntExt function. No functionality change intended.Chad Rosier2011-11-021-31/+37
| | | | llvm-svn: 143547
* Rewrite LinearFunctionTestReplace to handle pointer-type IVs.Andrew Trick2011-11-021-73/+116
| | | | | | | | We've been hitting asserts in this code due to the many supported combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This second rewrite of the code attempts to deal with these cases systematically. llvm-svn: 143546
* Begin collecting some of the statistics for block placement discussed onChandler Carruth2011-11-023-0/+92
| | | | | | | | | | | | | the mailing list. Suggestions for other statistics to collect would be awesome. =] Currently these are implemented as a separate pass guarded by a separate flag. I'm not thrilled by that, but I wanted to be able to collect the statistics for the old code placement as well as the new in order to have a point of comparison. I'm planning on folding them into the single pass if / when there is only one pass of interest. llvm-svn: 143537
* More AVX2 instructions and intrinsics.Craig Topper2011-11-021-3/+108
| | | | llvm-svn: 143536
* Add parentheses to disambiguate the precedence of these operations andChandler Carruth2011-11-021-2/+2
| | | | | | silence -Wparentheses. llvm-svn: 143534
* Add a bunch more X86 AVX2 instructions and their corresponding intrinsics.Craig Topper2011-11-022-2/+256
| | | | llvm-svn: 143529
* Add support to the linker to lazily link in functions. This change only ↵Tanya Lattner2011-11-021-0/+58
| | | | | | links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't. llvm-svn: 143524
* Factor out a SelectTrunc function. No functionality change intended.Chad Rosier2011-11-021-17/+28
| | | | llvm-svn: 143523
* Broaden an assert to handle enable-iv-rewrite=true following r143183.Andrew Trick2011-11-021-1/+1
| | | | | | Narrowest possible fix for PR11279. llvm-svn: 143522
* Fixed a bug in the code to create a dwarf file and directory table entires whenKevin Enderby2011-11-011-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | it is separating the directory part from the basename of the FileName. Noticed that this: .file 1 "dir/foo" when assembled got the two parts switched. Using the Mac OS X dwarfdump tool it can be seen easily: % dwarfdump -a a.out include_directories[ 1] = 'foo' Dir Mod Time File Len File Name ---- ---------- ---------- --------------------------- file_names[ 1] 1 0x00000000 0x00000000 dir ... Which should be: ... include_directories[ 1] = 'dir' Dir Mod Time File Len File Name ---- ---------- ---------- --------------------------- file_names[ 1] 1 0x00000000 0x00000000 foo llvm-svn: 143521
* ARM label operands can be quoted.Jim Grosbach2011-11-011-0/+1
| | | | | | For example, labels from Objective-C sources. llvm-svn: 143511
* ARM label operands can have an optional '#' before them.Jim Grosbach2011-11-011-6/+4
| | | | llvm-svn: 143510
* First part of support for generating dwarf for assembly source files with theKevin Enderby2011-11-012-0/+26
| | | | | | | | | | | | -g flag. In this part we generate the .file for the source being assembled and the .loc's for the assembled instructions. The next part will be to generate the dwarf Compile Unit DIE and a dwarf subprogram DIE for each non-temporary label. Once the next part is done test cases will be added. rdar://9275556 llvm-svn: 143509
* Fix disassembly of some VST1 instructions.Owen Anderson2011-11-011-5/+19
| | | | llvm-svn: 143507
* rename getHostTriple into getDefaultTargetTripleSebastian Pop2011-11-016-11/+11
| | | | llvm-svn: 143502
* rename LLVM_HOSTTRIPLE into LLVM_DEFAULT_TARGET_TRIPLESebastian Pop2011-11-012-6/+2
| | | | llvm-svn: 143501
* Teach the x86 backend a couple tricks for dealing with v16i8 sra by a ↵Eli Friedman2011-11-011-0/+18
| | | | | | constant splat value. Fixes PR11289. llvm-svn: 143498
* Ignore MachO symbol flags in the upper nibble of n_desc.Jim Grosbach2011-11-011-2/+4
| | | | | | They don't impact the MCJIT rtdyld, so just mask them off for now. llvm-svn: 143472
* Don't fold negative offsets into cp / dp accesses to avoid relocation errors.Richard Osborne2011-11-011-2/+2
| | | | | | This can happen if the address + addend is less than the start of the cp / dp. llvm-svn: 143459
* Remove a couple unused methods. PR11201.Eli Friedman2011-11-013-23/+0
| | | | llvm-svn: 143452
* Make sure we use the right insertion point when instcombine replaces a PHI ↵Eli Friedman2011-11-011-3/+4
| | | | | | with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275. llvm-svn: 143437
* ARM VLD/VST assembly parsing for symbolic address operands.Jim Grosbach2011-11-013-2/+36
| | | | llvm-svn: 143413
* Update split candidate correctly when interference cache is full.Jakob Stoklund Olesen2011-11-011-0/+2
| | | | | | No test case, spotted by inspection. llvm-svn: 143407
* Add support for new atomics to cpp backend. Misc other fixes while I'm ↵Eli Friedman2011-10-311-2/+97
| | | | | | here. PR11268. llvm-svn: 143406
* Add utility to append a function to the list of global constructors. Devang Patel2011-10-312-0/+56
| | | | | | Patch by Kostya Serebryany. llvm-svn: 143405
* ARM VST1 w/ writeback assembly parsing and encoding.Jim Grosbach2011-10-315-59/+168
| | | | llvm-svn: 143369
* Cleanup. Document. Make sure that this build_vector optimization only runs ↵Nadav Rotem2011-10-311-16/+29
| | | | | | before the op legalizer and that the used type is legal. llvm-svn: 143358
* ARM writeback vs. stride operands for VST/VLD.Jim Grosbach2011-10-311-239/+240
| | | | | | | The _fixed variants have a writeback operand, but not a stride operand. Split the conditional flag to distinguish the cases. llvm-svn: 143356
* More not-crashing NEON disassembly updates for the vld refactoring.Owen Anderson2011-10-311-0/+4
| | | | llvm-svn: 143351
* Begin adding AVX2 instructions. No selection support yet other than intrinsics.Craig Topper2011-10-311-146/+371
| | | | llvm-svn: 143331
* Switch new .file directive emission off by default, change llc's flag for it toNick Lewycky2011-10-311-1/+1
| | | | | | -enable-dwarf-directory. llvm-svn: 143326
* Add intrinsics and feature flag for read/write FS/GS base instructions. Also ↵Craig Topper2011-10-305-19/+53
| | | | | | add AVX2 feature flag. llvm-svn: 143319
* Reapply commit 143214 with a fix: m_ICmp doesn't match conditionsDuncan Sands2011-10-301-29/+65
| | | | | | | | | | | | with the given predicate, it matches any condition and returns the predicate - d'oh! Original commit message: The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false. Spotted by my super-optimizer in 186.crafty and 450.soplex. We really need a proper infrastructure for handling generalizations of this kind of thing (which occur a lot), however this case is so simple that I decided to go ahead and implement it directly. llvm-svn: 143318
* Teach ModuleLinker::getLinkageResult about materialisable functionsPeter Collingbourne2011-10-301-1/+1
| | | | llvm-svn: 143316
* X86: Emit logical shift by constant splat of <16 x i8> as a <8 x i16> shift ↵Benjamin Kramer2011-10-301-0/+26
| | | | | | and zero out the bits where zeros should've been shifted in. llvm-svn: 143315
* Fix pr11266.Nadav Rotem2011-10-301-4/+22
| | | | | | | | | On x86: (shl V, 1) -> add V,V Hardware support for vector-shift is sparse and in many cases we scalarize the result. Additionally, on sandybridge padd is faster than shl. llvm-svn: 143311
* Silence compiler warning.Benjamin Kramer2011-10-301-4/+4
| | | | llvm-svn: 143308
* Add a new DAGCombine optimization for BUILD_VECTOR.Nadav Rotem2011-10-291-0/+83
| | | | | | | If all of the inputs are zero/any_extended, create a new simple BV which can be further optimized by other BV optimizations. llvm-svn: 143297
* PPC: Disable moves for all CR subregisters.Benjamin Kramer2011-10-291-3/+1
| | | | | | Should fix assertion failures on ppc buildbots. llvm-svn: 143290
* SimplifyLibCalls: Use IRBuilder.CreateGlobalString when creating a string ↵Benjamin Kramer2011-10-291-4/+2
| | | | | | | | for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable. Fixes PR11264. llvm-svn: 143289
* Revert r143214; it's breaking a bunch of stuff.Eli Friedman2011-10-291-45/+29
| | | | llvm-svn: 143265
* Revert r143206, as there are still some failing tests.Dan Gohman2011-10-298-648/+532
| | | | llvm-svn: 143262
* ARM mode 'mov' to 'mvn' assembler alias.Jim Grosbach2011-10-282-2/+30
| | | | llvm-svn: 143237
* Add Thumb2 alias for "mov Rd, #imm" to "mvn Rd, #~imm".Jim Grosbach2011-10-282-1/+29
| | | | | | | | | | | When '~imm' is encodable as a t2_so_imm but plain 'imm' is not. For example, mov r2, #-3 becomes mvn r2, #2 rdar://10349224 llvm-svn: 143235
* Specify that the high bit of the alignment field is fixed to 0 on these ↵Owen Anderson2011-10-281-2/+2
| | | | | | instructions. llvm-svn: 143220
OpenPOWER on IntegriCloud