summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Add --program-prefix support to build.Sebastian Pop2012-08-274-15/+21
| | | | llvm-svn: 162707
* Fix compile error when building with C++11 - clang thinks that PRIx64 is a ↵Marshall Clow2012-08-271-2/+2
| | | | | | user-defined suffix or something llvm-svn: 162704
* Make sure we add the predicate after all of the registers are added.Bill Wendling2012-08-272-2/+132
| | | | | | <rdar://problem/12183003> llvm-svn: 162703
* Don't use for loops for code that is only intended to execute once. NoDan Gohman2012-08-271-6/+6
| | | | | | intended functionality change. Thanks to Ahmed Charles for spotting it. llvm-svn: 162686
* Fix comment.Rafael Espindola2012-08-271-3/+4
| | | | llvm-svn: 162678
* Fix comment for function RuntimeDyldImpl.resolveRelocation()Danil Malyshev2012-08-271-1/+4
| | | | llvm-svn: 162677
* Remove the the block_node_iterator of Region, replace it by the block_iterator.Hongbin Zheng2012-08-273-45/+5
| | | | llvm-svn: 162672
* Support MIPS DSP Rev2 intrinsics.Simon Atanasyan2012-08-271-0/+125
| | | | | | The patch reviewed by Akira Hatanaka. llvm-svn: 162668
* llvm/test/CodeGen/X86/fma.ll: Add -march=x86, or two tests would fail on ↵NAKAMURA Takumi2012-08-271-2/+2
| | | | | | non-x86 hosts. llvm-svn: 162667
* DWARFDebugRangeList.cpp: Use PRIx64 for uint64_t as format string.NAKAMURA Takumi2012-08-271-2/+3
| | | | llvm-svn: 162665
* llvm/test/CodeGen/X86/fma_patterns.ll: Add -mtriple=x86_64. It was ↵NAKAMURA Takumi2012-08-271-1/+1
| | | | | | incompatible on i686 and Windows x64. llvm-svn: 162664
* Remove MMX shift intrinsic handling code that also exists in ↵Craig Topper2012-08-271-56/+0
| | | | | | SelectionDAGBuilder. llvm-svn: 162661
* Commit test change for r162658.Craig Topper2012-08-271-44/+0
| | | | llvm-svn: 162660
* [DebugInfo] fixup for r162657: update CMakeLists.txtAlexey Samsonov2012-08-271-0/+1
| | | | llvm-svn: 162659
* Don't allow vextractf128 to be folded with unaligned stores. We don't fold ↵Craig Topper2012-08-271-13/+9
| | | | | | unaligned loads so shouldn't fold unaligned stores as it can cause an alignment fault to occur. llvm-svn: 162658
* Add basic support for .debug_ranges section to LLVM's DebugInfo library.Alexey Samsonov2012-08-278-7/+153
| | | | | | | | | | | This section (introduced in DWARF-3) is used to define instruction address ranges for functions that are not contiguous and can't be described by low_pc/high_pc attributes (this is the usual case for inlined subroutines). The patch is the first step to support fetching complete inlining info from DWARF. Reviewed by Benjamin Kramer. llvm-svn: 162657
* Fold some patterns into instruction definitons so tablegen can infer flags ↵Craig Topper2012-08-271-4/+4
| | | | | | removing the need for an explicit 'neverHasSideEffects = 1' llvm-svn: 162656
* FMA3 tests on bdver2 target for changes made in rev 162012. Also madeAnitha Boyapati2012-08-274-7/+12
| | | | | | | corresponding changes to existing tests for darwin triple to ensure that same pattern is tested for bdver2 target. llvm-svn: 162655
* Add HasAVX1Only predicate and use it for patterns that have an AVX1 ↵Craig Topper2012-08-272-48/+62
| | | | | | instruction and an AVX2 instruction rather than relying on AddedComplexity. llvm-svn: 162654
* Make sure that FMA3 is favored even when FMA4 is also enabled. Test case for ↵Craig Topper2012-08-271-1/+2
| | | | | | r162454. llvm-svn: 162653
* Pass -lLTO after gold-plugin.o so that it gets used in systems that default toRafael Espindola2012-08-271-1/+3
| | | | | | | --as-needed. Patch by Felix Geyer. Fixes pr13262. llvm-svn: 162652
* Mark avx2 maskstore has ReadWriteArgMem. Mark broadcast and maskload as ↵Craig Topper2012-08-261-18/+30
| | | | | | ReadArgMem. llvm-svn: 162649
* Fix integer undefined behavior due to signed left shift overflow in LLVM.Richard Smith2012-08-2419-56/+59
| | | | | | Reviewed offline by chandlerc. llvm-svn: 162623
* Add missing mayLoad flags to a large class of AVX *_Int instructions.Jakob Stoklund Olesen2012-08-241-1/+2
| | | | llvm-svn: 162622
* Missed tLEApcrelJT.Jakob Stoklund Olesen2012-08-241-0/+1
| | | | | | | ARMConstantIslandPass expects this instruction to stay in the same basic block as the jump table branch. llvm-svn: 162615
* Infer instruction properties from single-instruction patterns.Jakob Stoklund Olesen2012-08-243-0/+45
| | | | | | | | | | | | | | | | | | | | | Previously, instructions without a primary patterns wouldn't get their properties inferred. Now, we use all single-instruction patterns for inference, including 'def : Pat<>' instances. This causes a lot of instruction flags to change. - Many instructions no longer have the UnmodeledSideEffects flag because their flags are now inferred from a pattern. - Instructions with intrinsics will get a mayStore flag if they already have UnmodeledSideEffects and a mayLoad flag if they already have mayStore. This is because intrinsics properties are linear. - Instructions with atomic_load patterns get a mayStore flag because atomic loads can't be reordered. The correct workaround is to create pseudo-instructions instead of using normal loads. PR13693. llvm-svn: 162614
* Explicitly mark LEApcrel pseudos with hasSideEffects.Jakob Stoklund Olesen2012-08-242-0/+4
| | | | | | | | | | It's not clear that they should be marked as such, but tbb formation fails if t2LEApcrelJT is hoisted of of a loop. This doesn't change the flags on these instructions, UnmodeledSideEffects was already inferred from the missing pattern. llvm-svn: 162603
* Stop inferring isVariadic from instruction patterns.Jakob Stoklund Olesen2012-08-241-1/+5
| | | | | | | | | | | | | | | | | | Instructions are now only marked as variadic if they use variable_ops in their ins list. A variadic SDNode is typically used for call nodes that have the call arguments as operands. A variadic MachineInstr can actually encode a variable number of operands, for example ARM's stm/ldm instructions. A call instruction does not have to be variadic. The call argument registers are added as implicit operands. This change remove the MCID::Variadic flags from most call and return instructions, allowing us to better verify their operands. llvm-svn: 162599
* Fix call instruction operands in ARMFastISel.Jakob Stoklund Olesen2012-08-241-34/+16
| | | | | | | | | The ARM BL and BLX instructions don't have predicate operands, but the thumb variants tBL and tBLX do. The argument registers should be added as implicit uses. llvm-svn: 162593
* Mark X86::RET and RETI instructions as variadic.Jakob Stoklund Olesen2012-08-241-2/+5
| | | | | | | There is special magic happening when returning floating point values on the x87 stack. The RET instructions get extra f80 operands. llvm-svn: 162592
* Avoid including explicit uses when counting SDNode imp-uses.Jakob Stoklund Olesen2012-08-241-3/+6
| | | | | | | It is legal to have a register node as an explicit operand, it shouldn't be counted as an implicit use. llvm-svn: 162591
* Disable Mips' delay slot filler when optimization level is O0.Akira Hatanaka2012-08-242-7/+15
| | | | llvm-svn: 162589
* In MipsDAGToDAGISel::SelectAddr, fold add node into address operand, if itsAkira Hatanaka2012-08-242-3/+4
| | | | | | second operand is MipsISD::GPRel. llvm-svn: 162584
* Forgot to check in ProfileDataTypes.h in r162576Manman Ren2012-08-241-0/+39
| | | | llvm-svn: 162578
* Profile: move a single enum out of ProfileInfoTypes.h into a new Manman Ren2012-08-242-10/+2
| | | | | | | | | | | | ProfileDataTypes.h header. With this patch the old and new profiling code can exist side-by-side. The new profiling code will be submitted soon and it only supports insert-edge-profiling for now and will not depend on ProfileInfo. Patch by Alastair Murray. llvm-svn: 162576
* BranchProb: modify the definition of an edge in BranchProbabilityInfo to handleManman Ren2012-08-248-100/+237
| | | | | | | | | | | | | | the case of multiple edges from one block to another. A simple example is a switch statement with multiple values to the same destination. The definition of an edge is modified from a pair of blocks to a pair of PredBlock and an index into the successors. Also set the weight correctly when building SelectionDAG from LLVM IR, especially when converting a Switch. IntegersSubsetMapping is updated to calculate the weight for each cluster. llvm-svn: 162572
* Verify explicit instruction properties when they can be inferred.Jakob Stoklund Olesen2012-08-241-2/+39
| | | | | | | | | It is now allowed to explicitly set hasSideEffects, mayStore, and mayLoad on instructions with patterns. Verify that the patterns are consistent with the explicit flags. llvm-svn: 162569
* [asan/tsan] rename FunctionBlackList* to BlackList* as this class is not ↵Kostya Serebryany2012-08-245-17/+17
| | | | | | limited to functions any more llvm-svn: 162566
* [asan/tsan] extend the functionality of FunctionBlackList to globals and ↵Kostya Serebryany2012-08-242-55/+89
| | | | | | modules. Patch by Reid Watson. llvm-svn: 162565
* Lower constant pools and jump tables via TOC on PPC64/SVR4.Roman Divacky2012-08-246-9/+111
| | | | | | In collaboration with Adhemerval Zanella. llvm-svn: 162562
* GVN: Fix quadratic runtime on the number of switch cases.Benjamin Kramer2012-08-241-2/+10
| | | | | | | | No intended behavior change. This was introduced in r162023. With the fixed algorithm a Release build of ARMInstPrinter.cpp goes from 16s to 10s on a 2011 MBP. llvm-svn: 162559
* Fix load/store SDNode flags.Jakob Stoklund Olesen2012-08-241-2/+2
| | | | llvm-svn: 162558
* Add missing SDNPSideEffect flags.Jakob Stoklund Olesen2012-08-243-11/+17
| | | | llvm-svn: 162557
* Remove more mayLoad workarounds.Jakob Stoklund Olesen2012-08-241-7/+7
| | | | llvm-svn: 162556
* Try to appease MSVC even more elaborately in the alignment hacking space.Chandler Carruth2012-08-241-5/+33
| | | | | | | | | | | | | | | | | | | | MSVC doesn't support passing by-value parameters with alignment of 16-bytes or higher apparantly. What is deeply confusing is that it seems to *sometimes* (but not always) apply this to any type whose alignment is set using __declspec(align(...)). This caused lots of errors when we switch SmallVector over to use the automatically aligned character array utilities as they used __declspec(align(...)) heavily. As a pretty horrible but effective work-around, we instead cherry pick the smallest alignment sizes with specific types that happen to have the correct alignment, and then fall back to the attribute solution past them. This should resolve the MSVC build errors folks have been hitting. Sorry for that. In good news, it will do this without introducing other UB I hope. =] Thanks to Timur Iskhodzhanov for helping me test this! llvm-svn: 162549
* Custom lower FMA intrinsics to target specific nodes and remove the patterns.Craig Topper2012-08-243-132/+73
| | | | llvm-svn: 162534
* Use DW_FORM_flag_present to save space in debug information if we'reEric Christopher2012-08-246-30/+46
| | | | | | | | not in darwin gdb compat mode. Fixes rdar://10975088 llvm-svn: 162526
* Add support for some missing DW_FORM_*.Eric Christopher2012-08-242-0/+77
| | | | | TODO: Fix code duplication and coding style. llvm-svn: 162525
* Formatting.Eric Christopher2012-08-241-1/+1
| | | | llvm-svn: 162524
* Fix undefined behavior (negation of INT_MIN) in ARM backend.Richard Smith2012-08-242-2/+2
| | | | llvm-svn: 162520
OpenPOWER on IntegriCloud