summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Analysis: Canonicalize access to function attributes, NFCDuncan P. N. Exon Smith2015-02-142-10/+6
| | | | | | | | | | | | Canonicalize access to function attributes to use the simpler API. getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind) => getFnAttribute(Kind) getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind) => hasFnAttribute(Kind) llvm-svn: 229192
* Use the template method to grab the target specific subtarget.Eric Christopher2015-02-141-2/+1
| | | | llvm-svn: 229191
* [InstCombine] When canonicalizing gep indices, prefer zext when possiblePhilip Reames2015-02-142-0/+70
| | | | | | | | | | If we know that the sign bit of a value being sign extended is zero, we can use a zero extension instead. This is motivated by the fact that zero extensions are generally cheaper on x86 (and most other architectures?). We already apply a similar transform in DAGCombine, this just extends that to the IR level. This comes up when we eagerly canonicalize gep indices to the width of a machine register (i64 on x86_64). To do so, we insert sign extensions (sext) to promote smaller types. Differential Revision: http://reviews.llvm.org/D7255 llvm-svn: 229189
* Raising minimum required Visual Studio version to 2013.Chris Bieneman2015-02-133-12/+4
| | | | | | This is based on the discussions on: [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk llvm-svn: 229185
* [dsymutil] Add DIE selection algorithm.Frederic Riss2015-02-132-2/+416
| | | | | | | | | | | | | | | | With this commit, llvm-dsymutil learns how to choose which DIEs it will link in the final output and which ones it won't. This is based on the 'valid relocation' information that has been built in the previous commits. The test only tests that we choose the right 'root DIEs'. The selection algorithm (and especially the part that walk the dependencies of a root DIE) lacks a bit test coverage. This will be much easier to cover when we output actual Dwarf and thus can use llvm-dwarfdump to verify the structure of the emitted DIE trees. I'll add more tests then. llvm-svn: 229183
* [dsymutil] Downcase a function name.Frederic Riss2015-02-131-4/+4
| | | | llvm-svn: 229182
* [dsymutil] Add a few generic helper methods.Frederic Riss2015-02-131-5/+71
| | | | | | | To be used in subsequent commits (separated to keep only core logic in the follow-ups). llvm-svn: 229181
* [dsymutil] constify trivial function.Frederic Riss2015-02-131-1/+1
| | | | llvm-svn: 229180
* DWARFUnit: Add a couple of helpers to access the DIE array.Frederic Riss2015-02-131-0/+20
| | | | | | | To be used in dsymutil (or any other client that wants to take advantage of the fact that DIEs are stored in a vector). llvm-svn: 229179
* [dsymutil] Find relocations that correspond to debug map entries.Frederic Riss2015-02-131-1/+148
| | | | | | | | These 'valid relocations' in the debug_info section will be how dsymutil identifies the DIEs it needs to keep in the linked debug information. llvm-svn: 229178
* [dsymutil] Add DebugMapObject::lookupObjectAddress()Frederic Riss2015-02-132-3/+22
| | | | | | | It turns out the debug map will be interogated both by name and by object file address. Add the latter capability. llvm-svn: 229177
* Fixing broken bots.Chris Bieneman2015-02-131-1/+1
| | | | llvm-svn: 229176
* Minor tweak to MDAPhilip Reames2015-02-131-1/+3
| | | | | | | | | | Two minor tweaks I noticed when reading through the code: - No need to recompute begin() on every iteration. We're not modifying the instructions in this loop. - We can ignore PHINodes and Dbg intrinsics. The current code does this anyways, but it will spend slightly more time doing so and will count towards the limit of instructions in the block. It seems really silly to give up due the presence of PHIs... Differential Revision: http://reviews.llvm.org/D7624 llvm-svn: 229175
* NFC. Moving the RegisteredOptionCategories global into the CommandLineParser ↵Chris Bieneman2015-02-131-15/+18
| | | | | | class. llvm-svn: 229172
* NFC. clang-format wants to change this from two lines to one.Chris Bieneman2015-02-131-2/+1
| | | | llvm-svn: 229171
* NFC. More code cleanup making LookupOption a member of the CommandLineParser.Chris Bieneman2015-02-131-4/+6
| | | | llvm-svn: 229170
* The base pointer save offset can be computed at initialization time,Eric Christopher2015-02-132-23/+20
| | | | | | do so and fix up the calls. llvm-svn: 229169
* Move the target machine variable so that it's initialized earlyEric Christopher2015-02-132-4/+3
| | | | | | enough we can use it to initialize frame lowering. llvm-svn: 229168
* Stash the TargetMachine on the subtarget so we can access it later.Eric Christopher2015-02-133-6/+6
| | | | | | Clean up a subtarget function that has it passed in while we're at it. llvm-svn: 229164
* PPC LinkageSize can be computed at initialization time, do so.Eric Christopher2015-02-134-27/+20
| | | | llvm-svn: 229163
* Triple: Make setEnvironment not override the object formatReid Kleckner2015-02-131-1/+5
| | | | | | | | | | | | | | | Discovered by Halide users who had C++ code like this: Triple.setArch(Triple::x86); Triple.setOS(Triple::Windows); Triple.setObjectFormat(Triple::ELF); Triple.setEnvironment(Triple::MSVC); This would produce the stringified triple of x86-windows-msvc, instead of the x86-windows-msvc-elf string needed to run MCJIT. With this change, they retain the -elf suffix. llvm-svn: 229160
* [SSE/AVX] Use multiclasses to reduce the mass of scalar math patterns; NFCISanjay Patel2015-02-132-355/+309
| | | | | | | | | | | | | This takes the preposterous number of patterns in this section that were last added to in r219033 down to just plain obnoxious. With a little more work, we might get this down to just comical. I've added more test cases to the existing file that checks these patterns, but it seems that some of these patterns simply don't exist with today's shuffle lowering. llvm-svn: 229158
* Fix R600 test deadlock on Windows by giving FileCheck an argumentReid Kleckner2015-02-131-2/+2
| | | | | | | | llc would hang trying to write output to a full pipe that FileCheck wasn't reading. FileCheck wasn't reading from stdin because it needs a file as a positional argument. llvm-svn: 229157
* [PM] Fix a compile error I introduced in r229094 and didn't noticeChandler Carruth2015-02-131-1/+1
| | | | | | | | | | | | because I didn't have binutils set up properly to build the gold plugin. Fixes PR22581 which was filed because this broke the build for folks relying on the plugin. Very sorry! =] I've gotten the plugin stuff building now as well so it shouldn't keep happening. llvm-svn: 229156
* fix typos; NFCSanjay Patel2015-02-131-5/+5
| | | | llvm-svn: 229155
* [modules] Mark include/llvm/Support/Dwarf.def as being a textually-included ↵Richard Smith2015-02-131-0/+1
| | | | | | header. llvm-svn: 229154
* Clean up some inappropriate choices of type in the bitcode reader. None ofRichard Smith2015-02-132-5/+5
| | | | | | these are expected to fix any 64->32 bit real truncation issues. llvm-svn: 229153
* R600/SI: Refactor SOP1 classesTom Stellard2015-02-131-26/+19
| | | | llvm-svn: 229152
* R600/SI: Lowercase register namesTom Stellard2015-02-131-4/+4
| | | | llvm-svn: 229151
* R600/SI: Remove some unused TableGen classesTom Stellard2015-02-131-19/+0
| | | | llvm-svn: 229150
* Reapply r229142 with some enable_if magic to avoid memcpying between ↵Benjamin Kramer2015-02-131-5/+6
| | | | | | | | | | | differing types. Original commit message: SmallVector: Resolve a long-standing fixme by using the existing unitialized_copy dispatch. This makes append() use memcpy for trivially copyable types. llvm-svn: 229149
* Revert r229142. It breaks the world for unknown reasons.Benjamin Kramer2015-02-131-1/+3
| | | | llvm-svn: 229144
* Increase the CPU time timeout for testing from 10 to 20 minutes, toDimitry Andric2015-02-131-2/+2
| | | | | | | | compensate for slow machines, and the growing number of tests. Prodded by: Hans Wennborg llvm-svn: 229143
* SmallVector: Resolve a long-standing fixme by using the existing ↵Benjamin Kramer2015-02-131-3/+1
| | | | | | | | unitialized_copy dispatch. This makes append() use memcpy for trivially copyable types. llvm-svn: 229142
* [mips] Refactor and simplify MipsSEDAGToDAGISel::selectIntAddrLSL2MM(). NFC.Vasileios Kalintiris2015-02-131-9/+6
| | | | | | | | | | Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7618 llvm-svn: 229140
* [mips] Use isa<> instead of dyn_cast<> with unused value. NFC.Vasileios Kalintiris2015-02-131-2/+2
| | | | | | | | | | Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7615 llvm-svn: 229138
* R600/SI: Remove handling of fpimmMatt Arsenault2015-02-131-16/+6
| | | | llvm-svn: 229136
* R600/SI: Allow f64 inline immediates in i64 operandsMatt Arsenault2015-02-1311-121/+482
| | | | | | | This requires considering the size of the operand when checking immediate legality. llvm-svn: 229135
* R600/SI: Minor test scheduling fixesMatt Arsenault2015-02-134-16/+17
| | | | | | This prevents these from failing in a later commit. llvm-svn: 229134
* Fix -Wunused-variable warning.Zachary Turner2015-02-131-1/+0
| | | | llvm-svn: 229130
* llvm-pdbdump: Improve printing of functions and signatures.Zachary Turner2015-02-136-38/+154
| | | | | | | | | This correctly prints the function pointers, and also prints function signatures for symbols as opposed to just types. So actual functions in your program will now be printed with full name and signature, as opposed to just name as before. llvm-svn: 229129
* [mips][microMIPS] Delay slot filler: Replace the microMIPS JR with the JRCJozef Kolek2015-02-134-16/+57
| | | | | | | | | | | This patch adds functionality in MIPS delay slot filler such as if delay slot filler have to put NOP instruction into the delay slot of microMIPS JR instruction, then instead of emitting NOP this instruction is replaced by compact jump instruction JRC. Differential Revision: http://reviews.llvm.org/D7522 llvm-svn: 229128
* [InstCombine] Fix regression introduced at r227197.Andrea Di Biagio2015-02-132-10/+33
| | | | | | | | | | | | | | | | | | This patch fixes a problem I accidentally introduced in an instruction combine on select instructions added at r227197. That revision taught the instruction combiner how to fold a cttz/ctlz followed by a icmp plus select into a single cttz/ctlz with flag 'is_zero_undef' cleared. However, the new rule added at r227197 would have produced wrong results in the case where a cttz/ctlz with flag 'is_zero_undef' cleared was follwed by a zero-extend or truncate. In that case, the folded instruction would have been inserted in a wrong location thus leaving the CFG in an inconsistent state. This patch fixes the problem and add two reproducible test cases to existing test 'InstCombine/select-cmp-cttz-ctlz.ll'. llvm-svn: 229124
* Help: Document how to build and install with CMake.Tom Stellard2015-02-131-0/+30
| | | | | | | | Resolves PR21569. Patch by: Stephen Kelly llvm-svn: 229122
* Help: Document the minimum CMake version required.Tom Stellard2015-02-131-1/+1
| | | | | | Patch by: Stephen Kelly llvm-svn: 229121
* Add run line that was missing in r228999.Akira Hatanaka2015-02-131-2/+4
| | | | | | Also, change the run lines to use -allow-empty. llvm-svn: 229118
* [CodeGenPrepare] Removed duplicate logic. SimplifyCFG already knows how to ↵Andrea Di Biagio2015-02-136-623/+63
| | | | | | | | | | | | | | | | speculate calls to cttz/ctlz. SimplifyCFG now knows how to speculate calls to intrinsic cttz/ctlz that are 'cheap' for the target. Therefore, some of the logic in CodeGenPrepare that was originally added at revision 224899 can now be removed. This patch is basically a no functional change. It removes the duplicated logic in CodeGenPrepare and converts all the existing target specific tests for cttz/ctlz into SimplifyCFG tests. Differential Revision: http://reviews.llvm.org/D7608 llvm-svn: 229105
* [PBQP] Conservativelly allocatable nodes can be spilled and give a better ↵Arnaud A. de Grandmaison2015-02-132-5/+0
| | | | | | | | | | solution Although such nodes are allocatable, the cost of spilling may be less than allocating to register, so spilling the node may provide a better solution. The assert does not account for this case, so remove it for now. llvm-svn: 229103
* [SimplifyCFG] Add test for r229099James Molloy2015-02-131-0/+22
| | | | | | Add extra test that was accidentally not staged. llvm-svn: 229101
* [SimplifyCFG] Be more aggressiveJames Molloy2015-02-133-37/+15
| | | | | | | | Up the phi node folding threshold from a cheap "1" to a meagre "2". Update tests for extra added selects and slight code churn. llvm-svn: 229099
OpenPOWER on IntegriCloud