summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix potential crash if DAGCombine on stores sees a half typePete Cooper2012-06-211-1/+2
| | | | llvm-svn: 158927
* The inline asm operand modifier 'c' is suppose Jack Carter2012-06-213-4/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to be generic across architectures. It has the following description in the gnu sources: Substitute immediate value without immediate syntax Several Architectures such as x86 have local implementations of operand modifier 'c' which go beyond the above description slightly. To make use of the generic modifiers without overriding local implementation one can make a call to the base class method for AsmPrinter::PrintAsmOperand() in the locally derived method's "default" case in the switch statement. That way if it is already defined locally the generic version will never get called. This change is needed when test/CodeGen/generic/asm-large-immediate.ll failed on a native Mips board. The test was assuming a generic implementation was in place. Affected files: lib/Target/Mips/MipsAsmPrinter.cpp: Changed the default case to call the base method. lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'c' to the switch cases. test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter llvm-svn: 158925
* move some typedefs so that we don't polute the llvm namespace. this should ↵Nuno Lopes2012-06-211-3/+4
| | | | | | appease the GCC buildbots llvm-svn: 158924
* hopefully fix the buildbots: some tests have wrong definitions of malloc ↵Nuno Lopes2012-06-212-3/+18
| | | | | | and were crashing this code on 64 bits machines llvm-svn: 158923
* port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove ↵Nuno Lopes2012-06-213-439/+37
| | | | | | | | most of the code from here). Remove the alloc_size.ll test until we settle on a metadata format that makes everyone happy.. llvm-svn: 158920
* refactor the MemoryBuiltin analysis:Nuno Lopes2012-06-2111-290/+717
| | | | | | | | | | | | - provide more extensive set of functions to detect library allocation functions (e.g., malloc, calloc, strdup, etc) - provide an API to compute the size and offset of an object pointed by Move a few clients (GVN, AA, instcombine, ...) to the new API. This implementation is a lot more aggressive than each of the custom implementations being replaced. Patch reviewed by Nick Lewycky and Chandler Carruth, thanks. llvm-svn: 158919
* Add a number of threshold arguments to the SRA pass.Nadav Rotem2012-06-212-19/+64
| | | | | | A patch by Tom Stellard with minor changes. llvm-svn: 158918
* Revert r158209, "test/CodeGen/Generic/APIntLoadStore.ll: Mark as XFAIL:ppc ↵NAKAMURA Takumi2012-06-211-1/+0
| | | | | | | | since r157911." It passes according to ppc changes. llvm-svn: 158917
* llvm/unittests/ExecutionEngine/JIT/CMakeLists.txt: Unbreak build.NAKAMURA Takumi2012-06-211-1/+1
| | | | llvm-svn: 158914
* Add a pragma to supress an MSVC warning on some of the absurd code I'mChandler Carruth2012-06-211-0/+6
| | | | | | | | using to test the alignment support library. Patch from Nikola on IRC. llvm-svn: 158912
* Add some missing dependencies here that I missed in my first passChandler Carruth2012-06-211-1/+4
| | | | | | through. Also sort them. llvm-svn: 158911
* Completely refactor the structuring of unittest CMake files to match theChandler Carruth2012-06-2112-155/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefiles, the CMake files in every other part of the LLVM tree, and sanity. This should also restore the output tree structure of all the unit tests, sorry for breaking that, and thanks for letting me know. The fundamental change is to put a CMakeLists.txt file in the unittest directory, with a single test binary produced from it. This has several advantages: - No more weird directory stripping in the unittest macro, allowing it to be used more readily in other projects. - No more directory prefixes on all the source files. - Allows correct and precise use of LLVM's per-directory dependency system. - Allows use of the checking logic for source files that have not been added to the CMake build. This uncovered a file being skipped with CMake in LLVM and one in Clang's unit tests. - Makes Specifying conditional compilation or other custom logic for JIT tests easier. It did require adding the concept of an explicit 'optional' source file to the CMake build so that the missing-file check can skip cases where the file is *supposed* to be missing. =] This is another chunk of refactoring the CMake build in order to make it usable for other clients like CompilerRT / ASan / TSan. Note that this is interdependent with a Clang CMake change. llvm-svn: 158909
* llvm-stress: Stabalize (by using an ordered container) and add randomness to ↵Nadav Rotem2012-06-211-9/+20
| | | | | | the order in which loops are generated. llvm-svn: 158908
* Cleanup some encoding mishaps.Bill Wendling2012-06-211-5/+5
| | | | llvm-svn: 158904
* Sphinxify the tablegen document.Bill Wendling2012-06-213-980/+802
| | | | llvm-svn: 158903
* Add a missing llvm.fma -> VFNMS pattern to the ARM backend.Lang Hames2012-06-212-0/+17
| | | | llvm-svn: 158902
* Sphinxify the outdated Packaging documentation.Bill Wendling2012-06-213-120/+77
| | | | llvm-svn: 158901
* Emit a single _udivmodsi4 libcall instead of two separate _udivsi3 andEvan Cheng2012-06-212-6/+22
| | | | | | | | _umodsi3 libcalls if they have the same arguments. This optimization was apparently broken if one of the node was replaced in place. rdar://11714607 llvm-svn: 158900
* Factor the logic for setting up a GoogleTest unit test executable intoChandler Carruth2012-06-212-45/+53
| | | | | | | a helper function in CMake. This will allow us to share all of this logic with Clang, and eventually CompilerRT. llvm-svn: 158896
* Simplify the naming pattern in the unittests' CMake fileChandler Carruth2012-06-211-12/+16
| | | | llvm-svn: 158893
* Remove one of the LLVM-specific CMake hacks in favor of standard CMakeChandler Carruth2012-06-212-7/+7
| | | | | | | | | | facilities. This was only used in one place in LLVM, and was used pervasively (but with different code!) in Clang. It has no advantages over the standard CMake facilities and in some cases disadvantages. llvm-svn: 158889
* Update regunits in RegisterCoalescer::reMaterializeTrivialDef.Jakob Stoklund Olesen2012-06-211-6/+4
| | | | | | Old code would only update physreg live intervals. llvm-svn: 158881
* Put space after "code-block::".Meador Inge2012-06-201-1/+1
| | | | llvm-svn: 158880
* Remove LiveIntervals::iterator.Jakob Stoklund Olesen2012-06-201-6/+0
| | | | | | | | | | | | | | | Live intervals for regunits and virtual registers are stored separately, and physreg live intervals are going away. To visit the live ranges of all virtual registers, use this pattern instead: for (unsigned i = 0, e = MRI->getNumVirtRegs(); i != e; ++i) { unsigned Reg = TargetRegisterInfo::index2VirtReg(i); if (MRI->reg_nodbg_empty(Reg)) continue; llvm-svn: 158879
* Remove spurious typedefs.Jakob Stoklund Olesen2012-06-201-3/+0
| | | | llvm-svn: 158878
* Removed some left over HTML tags and a '}'.Meador Inge2012-06-201-3/+2
| | | | llvm-svn: 158877
* Remove the RenderMachineFunction HTML output pass.Jakob Stoklund Olesen2012-06-207-1375/+0
| | | | | | | I don't think anyone has been using this functionality for a while, and it is getting in the way of refactoring now. llvm-svn: 158876
* Remove the -live-regunits command line option.Jakob Stoklund Olesen2012-06-202-13/+4
| | | | | | Register allocators depend on it being permanently enabled now. llvm-svn: 158873
* Fix some more LiveInterval enumerations.Jakob Stoklund Olesen2012-06-202-13/+12
| | | | | | Deterministically enumerate the virtual registers instead. llvm-svn: 158872
* Remove LiveIntervalUnions from RegAllocBase.Jakob Stoklund Olesen2012-06-204-167/+14
| | | | | | They are living in LiveRegMatrix now. llvm-svn: 158868
* Convert RAGreedy to LiveRegMatrix interference checking.Jakob Stoklund Olesen2012-06-204-92/+169
| | | | | | | | | | | | | | | | | Stop depending on the LiveIntervalUnions in RegAllocBase, they are about to be removed. The changes are mostly replacing register alias iterators with regunit iterators, and querying LiveRegMatrix instrad of RegAllocBase. InterferenceCache is converted to work with per-regunit LiveIntervalUnions, and it checks fixed regunit interference separately, using the fixed live intervals provided by LiveIntervalAnalysis. The local splitting helper calcGapWeights() is also considering fixed regunit interference which is kept on the side now. llvm-svn: 158867
* Convert RABasic to using LiveRegMatrix interference checking.Jakob Stoklund Olesen2012-06-203-69/+67
| | | | | | | Stop using the LiveIntervalUnions provided by RegAllocBase, they will be removed soon. llvm-svn: 158866
* Enable register unit liveness by default.Jakob Stoklund Olesen2012-06-201-1/+1
| | | | | | Soon we won't need to compute live intervals for physical registers. llvm-svn: 158865
* Teach PBQPBuilder::build() about regunit interference.Jakob Stoklund Olesen2012-06-201-33/+31
| | | | | | | Filter out physreg candidates with regunit interferrence. Also compute regmask interference more efficiently. llvm-svn: 158864
* Restructure PopulateLoopsDFS::insertIntoLoop.Andrew Trick2012-06-201-10/+11
| | | | | | As Nadav pointed out the first implementation was obscure. llvm-svn: 158862
* Sphixify the GEP FAQ.Bill Wendling2012-06-203-754/+544
| | | | llvm-svn: 158858
* Avoid iterating with LiveIntervals::iterator.Jakob Stoklund Olesen2012-06-203-41/+45
| | | | | | | | | | That is a DenseMap iterator keyed by pointers, so the iteration order is nondeterministic. I would like to replace the DenseMap with an IndexedMap which doesn't allow iteration. llvm-svn: 158856
* Revert r158846.Akira Hatanaka2012-06-206-300/+326
| | | | llvm-svn: 158855
* In MipsDisassembler.cpp, instead of defining register class tables, use the onesAkira Hatanaka2012-06-206-326/+300
| | | | | | | | | | | that are generated by TableGen and are already available in MipsGenRegisterInfo.inc. Suggested by Jakob Stoklund Olesen. Also, fix bug in function DecodeAFGR64RegisterClass. Patch by Vladimir Medic. llvm-svn: 158846
* Remove an "else" that snuck in after a "return" ;)Kaelyn Uhrain2012-06-201-1/+1
| | | | llvm-svn: 158844
* Check that a file is not a directory before reading it into a MemoryBuffer.Kaelyn Uhrain2012-06-201-0/+9
| | | | llvm-svn: 158841
* Add "extern template" declarations now that we use explicit instantiation.Andrew Trick2012-06-202-1/+23
| | | | | | | | | | | | | This is supported by gcc and clang, but guarded by a macro for MSVC 2008. The extern template declaration is not necessary but generally good form. It can avoid extra instantiations of the template methods defined inline. The EXTERN_TEMPLATE_INSTANTIATION macro could probably be generalized to handle multiple template parameters if someone thinks it's worthwhile. llvm-svn: 158840
* Add users of a MERGE_VALUE node to the worklist to process again when the ↵Pete Cooper2012-06-201-0/+3
| | | | | | node is removed. Sorry, no test case. Foudn it by inspection of the code llvm-svn: 158839
* Only update regunit live ranges that have been precomputed.Jakob Stoklund Olesen2012-06-203-4/+15
| | | | | | | | | | | Regunit live ranges are computed on demand, so when mi-sched calls handleMove, some regunits may not have live ranges yet. That makes updating them easier: Just skip the non-existing ranges. They will be computed correctly from the rescheduled machine code when they are needed. llvm-svn: 158831
* replace usage of EmitGEPOffset() with TargetData::getIndexedOffset() when ↵Nuno Lopes2012-06-202-8/+6
| | | | | | | | | | the GEP offset is known to be constant. With this change, we avoid relying on the IR Builder to constant fold the operations. No functionality change intended. llvm-svn: 158829
* Delete dead code.Jakob Stoklund Olesen2012-06-201-48/+0
| | | | llvm-svn: 158827
* Add support for generating reg+reg (indexed) pre-inc loads on PPC.Hal Finkel2012-06-205-10/+155
| | | | llvm-svn: 158823
* Fix DAGCombine to deal with ext-conversion of pre/post_inc loads.Hal Finkel2012-06-201-1/+8
| | | | | | The test case for this will come with the PPC indexed preinc loads commit. llvm-svn: 158822
* Fixing a compiler warning in MSVC 10.Aaron Ballman2012-06-201-1/+1
| | | | llvm-svn: 158820
* Sphinxify the SegmentedStack document.Bill Wendling2012-06-203-94/+86
| | | | llvm-svn: 158819
OpenPOWER on IntegriCloud