summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Revert 179071 because it is not the right way to support non standard ↵Nadav Rotem2013-04-094-21/+25
| | | | | | new/new[] operators. llvm-svn: 179084
* Compute correct frame sizes for SPARC v9 64-bit frames.Jakob Stoklund Olesen2013-04-094-25/+56
| | | | | | | | | | The save area is twice as big and there is no struct return slot. The stack pointer is always 16-byte aligned (after adding the bias). Also eliminate the stack adjustment instructions around calls when the function has a reserved stack frame. llvm-svn: 179083
* More uses for SymbolTableEntryBase.Rafael Espindola2013-04-091-35/+9
| | | | llvm-svn: 179076
* Add a SymbolTableEntryBase.Rafael Espindola2013-04-092-52/+38
| | | | | | Use it when we don't need to know if we have a 32 or 64 bit SymbolTableEntry. llvm-svn: 179074
* Fix PointerIntPair to be enum class compatible.Joe Groff2013-04-091-26/+26
| | | | | | | | | | | Some parts of PointerIntPair assumed that the IntType of the pair was implicitly convertible to intptr_t, which is not the case for enum class values. Add a static_cast<intptr_t> to make these conversions explicit and allow PointerIntPair to be used with an enum class IntType. While we're here, rename some of the argument values so we don't have variables named "Int" floating around. llvm-svn: 179073
* Add a SectionBase struct.Rafael Espindola2013-04-082-24/+30
| | | | | | | Use it to share code and when we don't need to know if we have a 32 or 64 bit Section. llvm-svn: 179072
* c++ new operators are not malloc-like functions because they do not return ↵Nadav Rotem2013-04-084-25/+21
| | | | | | | | uninitialized memory. Users may overide new-operators and implement any function that they like. llvm-svn: 179071
* InstructionSimplify.cpp: Fix a ligature, "fi", to get rid of utf8 in comment.NAKAMURA Takumi2013-04-081-1/+1
| | | | llvm-svn: 179066
* Redo the fix Benjamin Kramer committed in r178793 about iterator ↵Shuxin Yang2013-04-081-12/+14
| | | | | | | | | | | | | | | | | invalidation in Reassociate. I brazenly think this change is slightly simpler than r178793 because: - no "state" in functor - "OpndPtrs[i]" looks simpler than "&Opnds[OpndIndices[i]]" While I can reproduce the probelm in Valgrind, it is rather difficult to come up a standalone testing case. The reason is that when an iterator is invalidated, the stale invalidated elements are not yet clobbered by nonsense data, so the optimizer can still proceed successfully. Thank Benjamin for fixing this bug and generously providing the test case. llvm-svn: 179062
* Update the docs about the fact that the loop vectorizer is enabled by ↵Nadav Rotem2013-04-081-9/+4
| | | | | | default for -O3. llvm-svn: 179060
* Template the MachO types over the word size.Rafael Espindola2013-04-083-82/+119
| | | | llvm-svn: 179051
* Remove is64BitLoadCommand.Rafael Espindola2013-04-081-20/+10
| | | | llvm-svn: 179048
* Rewrite test/Integer tests to use FileCheck instead of grepEli Bendersky2013-04-083-5/+7
| | | | llvm-svn: 179047
* Rewrite test/ExecutionEngine tests to use FileCheck instead of grepEli Bendersky2013-04-084-6/+10
| | | | llvm-svn: 179043
* Update documentation.Matt Arsenault2013-04-081-3/+1
| | | | | | First feature is not CPU subtype anymore since r134127 llvm-svn: 179038
* Rewrite test/Verifier tests to use FileCheck instead of grepEli Bendersky2013-04-0813-19/+28
| | | | llvm-svn: 179036
* X86 cost model: Model cost for uitofp and sitofp on SSE2Arnold Schwaighofer2013-04-083-3/+677
| | | | | | | | | | | | | | | | | | | | The costs are overfitted so that I can still use the legalization factor. For example the following kernel has about half the throughput vectorized than unvectorized when compiled with SSE2. Before this patch we would vectorize it. unsigned short A[1024]; double B[1024]; void f() { int i; for (i = 0; i < 1024; ++i) { B[i] = (double) A[i]; } } radar://13599001 llvm-svn: 179033
* [ms-inline asm] Add support for ImmDisp [ Symbol ] memory operands.Chad Rosier2013-04-083-24/+28
| | | | | | rdar://13521249 llvm-svn: 179030
* Generate PPC early conditional returnsHal Finkel2013-04-088-28/+218
| | | | | | | | | | | | | PowerPC has a conditional branch to the link register (return) instruction: BCLR. This should be used any time when we'd otherwise have a conditional branch to a return. This adds a small pass, PPCEarlyReturn, which runs just prior to the branch selection pass (and, importantly, after block placement) to generate these conditional returns when possible. It will also eliminate unconditional branches to returns (these happen rarely; most of the time these have already been tail duplicated by the time PPCEarlyReturn is invoked). This is a nice optimization for small functions that do not maintain a stack frame. llvm-svn: 179026
* DWARF parser: remove duplicated code and fix code style in DIE extractors.Alexey Samsonov2013-04-082-268/+81
| | | | llvm-svn: 179023
* Add all 4 MachO object types. Use the stored type to implement is64Bits().Rafael Espindola2013-04-083-8/+24
| | | | llvm-svn: 179021
* R600: Control Flow support for pre EG genVincent Lejeune2013-04-083-72/+240
| | | | llvm-svn: 179020
* Simplify the quoting here. Our lit emulator doesn't deal well with theChandler Carruth2013-04-081-1/+1
| | | | | | nested quoting schemes, and they're not important here... llvm-svn: 179014
* Remove a global 'endl' variable from the other file as well.Chandler Carruth2013-04-081-25/+22
| | | | llvm-svn: 179010
* Clean up namespaces in obj2yaml.cpp.Chandler Carruth2013-04-081-11/+12
| | | | llvm-svn: 179009
* Add ACLE link to ARM documentation sectionsTim Northover2013-04-081-0/+4
| | | | llvm-svn: 179006
* AArch64: remove barriers from AArch64 atomic operations.Tim Northover2013-04-085-325/+400
| | | | | | | | I've managed to convince myself that AArch64's acquire/release instructions are sufficient to guarantee C++11's required semantics, even in the sequentially-consistent case. llvm-svn: 179005
* Cleanup the formatting of obj2yaml.cpp.Chandler Carruth2013-04-081-22/+23
| | | | | | | | I couldn't touch this file and not clean it up some. These reformattings brought to you by clang-format, with some minor adjustments by me. More spring cleaning to follow here. llvm-svn: 179004
* Don't define our own global 'endl' variable. While technically it hadChandler Carruth2013-04-081-5/+3
| | | | | | | | | | | | | | | | | | internal linkage and so wasn't a patent bug, it doesn't make any sense here. We can avoid even calling operator<< by just embedding the newline in the string literals that were already being streamed out. It also gives the impression of some line-ending agnosticisms which is not present, and that flushing happens when it doesn't. If we want to use std::endl, we could do that, but honestly it doesn't seem remotely worth it. Using '\n' directly is much more clear when working with raw_ostream. It also happens to fix builds with old crufty GCC STL implementations that include std::endl into the global namespace (or headers written to be compatible with such atrocities). llvm-svn: 179003
* ARM: Remove unused variable.Benjamin Kramer2013-04-081-2/+0
| | | | llvm-svn: 179001
* Cleanup and improve PPC fsel generationHal Finkel2013-04-072-7/+170
| | | | | | | | | | | | | First, we should not cheat: fsel-based lowering of select_cc is a finite-math-only optimization (the ISA manual, section F.3 of v2.06, makes this clear, as does a note in our own README). This also adds fsel-based lowering of EQ and NE condition codes. As it turned out, fsel generation was covered by a grand total of zero regression test cases. I've added some test cases to cover the existing behavior (which is now finite-math only), as well as the new EQ cases. llvm-svn: 179000
* TargetLowering: Fix getTypeConversion handling of extended vector typesArnold Schwaighofer2013-04-074-14/+17
| | | | | | | | | | | | | | | The code in getTypeConversion attempts to promote the element vector type before it trys to split or widen the vector. After it failed finding a legal vector type by promoting it would continue using the promoted vector element type. Thereby missing legal splitted vector types. For example the type v32i32 that has a legal split of 4 x v3i32 on x86/sse2 would be transformed to: v32i256 and from there on successively split to: v16i256, v8i256, v1i256 and then finally ends up as an i64 type. By resetting the vector element type to the original vector element type that existed before the promotion the code will attempt to split the vector type to smaller vector widths of the same type. llvm-svn: 178999
* Make MachOObjectFile independent from MachOObject.Rafael Espindola2013-04-072-17/+9
| | | | llvm-svn: 178998
* Implement MachOObjectFile::getData directly.Rafael Espindola2013-04-071-1/+1
| | | | llvm-svn: 178997
* Implement MachOObjectFile::is64Bit directly.Rafael Espindola2013-04-071-1/+2
| | | | llvm-svn: 178996
* Implement MachOObjectFile::getHeaderSize directly.Rafael Espindola2013-04-071-1/+1
| | | | llvm-svn: 178995
* Implement MachOObjectFile::getHeader directly.Rafael Espindola2013-04-073-19/+30
| | | | llvm-svn: 178994
* Implement LowerCall_64 for the SPARC v9 64-bit ABI.Jakob Stoklund Olesen2013-04-073-3/+375
| | | | | | | There is still no support for byval arguments (which I don't think are needed) and varargs. llvm-svn: 178993
* Implement MachOObjectFile::getHeaderSize and MachOObjectFile::getData.Rafael Espindola2013-04-072-41/+46
| | | | | | | These were the last missing forwarding functions. Also consistently use the forwarding functions instead of using MachOObj directly. llvm-svn: 178992
* Remove LoadCommandInfo now that we always have a pointer to the command.Rafael Espindola2013-04-073-78/+31
| | | | | | | LoadCommandInfo was needed to keep a command and its offset in the file. Now that we always have a pointer to the command, we don't need the offset. llvm-svn: 178991
* Add MachOObjectFile::LoadCommandInfo.Rafael Espindola2013-04-073-13/+39
| | | | | | This avoids using MachOObject::getLoadCommandInfo. llvm-svn: 178990
* Use getLoadCommandInfo instead of MachOObj->getLoadCommandInfo.Rafael Espindola2013-04-071-18/+19
| | | | llvm-svn: 178989
* Construct MachOObject in MachOObjectFile's constructor.Rafael Espindola2013-04-072-17/+21
| | | | llvm-svn: 178988
* Remove unused argument.Rafael Espindola2013-04-075-6/+5
| | | | llvm-svn: 178987
* Remove MachOObjectFile::getObject.Rafael Espindola2013-04-073-12/+25
| | | | llvm-svn: 178986
* Remove two uses of getObject.Rafael Espindola2013-04-073-13/+6
| | | | llvm-svn: 178985
* Remove usage of InMemoryStruct in getSymbol.Rafael Espindola2013-04-072-32/+10
| | | | llvm-svn: 178984
* PPC Altivec load/store intrinsics can be marked IntrRead[Write]ArgMemHal Finkel2013-04-071-10/+15
| | | | llvm-svn: 178983
* PPC rotate instructions don't have unmodeled side effctsHal Finkel2013-04-072-3/+6
| | | | llvm-svn: 178982
* Remove a use of InMemoryStruct in llvm-readobj.Rafael Espindola2013-04-072-11/+8
| | | | llvm-svn: 178981
OpenPOWER on IntegriCloud