summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* mi-sched: Force bottom up scheduling for generic targets.Andrew Trick2013-09-041-3/+23
| | | | | | | | | Fast register pressure tracking currently only takes effect during bottom up scheduling. Forcing this is a bit faster and simpler for targets that don't have many scheduling constraints and don't need top-down scheduling. llvm-svn: 190014
* Remove hack ensuring that darwin didn't produce dwarf > 3 for modulesEric Christopher2013-09-041-5/+1
| | | | | | | | without a limiting factor. Update all testcases accordingly. llvm-svn: 190002
* Revert "Revert r189902 as the workaround shouldn't be necessary anymore."Eric Christopher2013-09-041-1/+5
| | | | | | Needs testcase updates. llvm-svn: 190000
* Revert r189902 as the workaround shouldn't be necessary anymore.Eric Christopher2013-09-041-5/+1
| | | | llvm-svn: 189999
* comment typoAndrew Trick2013-09-041-1/+1
| | | | llvm-svn: 189997
* Remove dead subtree limit code.Andrew Trick2013-09-041-9/+0
| | | | llvm-svn: 189995
* -view-misched-dags, better pruning.Andrew Trick2013-09-041-1/+1
| | | | llvm-svn: 189994
* mi-sched: DEBUG cleanup, call tracePick for unidirectional scheduling.Andrew Trick2013-09-041-0/+2
| | | | llvm-svn: 189993
* 80 columnsAndrew Trick2013-09-041-2/+2
| | | | llvm-svn: 189992
* mi-sched: Suppress register pressure tracking when the scheduling window is ↵Andrew Trick2013-09-041-16/+29
| | | | | | | | | | too small. If the instruction window is < NumRegs/2, pressure tracking is not likely to be effective. The scheduler has to process a very large number of tiny blocks. We want this to be fast. llvm-svn: 189991
* mi-sched: Load clustering is a bit to expensive to enable unconditionally.Andrew Trick2013-09-041-1/+1
| | | | llvm-svn: 189990
* mi-sched: Reuse an invalid HazardRecognizer to save compile time.Andrew Trick2013-09-041-6/+14
| | | | llvm-svn: 189989
* mi-sched: bypass heuristic checks when regpressure tracking is disabled.Andrew Trick2013-09-042-27/+32
| | | | llvm-svn: 189988
* Added -misched-regpressure option.Andrew Trick2013-09-042-21/+51
| | | | | | | | Register pressure tracking is half the complexity of the scheduler. It's useful to be able to turn it off for compile time and performance comparisons. llvm-svn: 189987
* Unify and clean up.Eric Christopher2013-09-041-9/+4
| | | | llvm-svn: 189977
* Revert "Revert "Remove the darwin gdb option, that version of gdb is now ↵Michael Gottesman2013-09-042-36/+7
| | | | | | | | | | | | | | dead and the rest of the compatibility should be done on a dwarf-N level."" This reverts commit r189913. Talked with Eric on IRC. I am going to XFAIL the failing test since it is using what Eric described as "the member hack" which was needed on that old GDB. Sorry for the noise! llvm-svn: 189914
* Revert "Remove the darwin gdb option, that version of gdb is now dead and ↵Michael Gottesman2013-09-042-7/+36
| | | | | | | | | | | | the rest of the compatibility should be done on a dwarf-N level." This reverts commit r189903. This commit broke the phase 1 buildbot for a while. http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/6684 llvm-svn: 189913
* Remove the darwin gdb option, that version of gdb is now dead andEric Christopher2013-09-042-36/+7
| | | | | | the rest of the compatibility should be done on a dwarf-N level. llvm-svn: 189903
* Make the default dwarf version 3 for darwin when we can't find oneEric Christopher2013-09-041-1/+5
| | | | | | in the module. Add a FIXME with a comment about darwin's ld. llvm-svn: 189902
* Add a hashing routine that handles hashing types. Add a test forEric Christopher2013-09-032-0/+23
| | | | | | hashing the contents of DW_FORM_data1 on top of a type with attributes. llvm-svn: 189862
* Sentences end with periods.Eric Christopher2013-09-031-2/+2
| | | | llvm-svn: 189861
* Add the rest of the stock attributes to the attribute table.Eric Christopher2013-09-032-6/+240
| | | | | | | | This won't affect the kinds of hashes we test for as we actually do hashing based on form and attribute. Change the fission-hash testcase one last time to handle DW_AT_comp_dir. llvm-svn: 189840
* Fix my previous checkin to updatePressureDiffs.Andrew Trick2013-08-311-4/+19
| | | | | | | | There was one case that we could hit a DebugValue where I didn't think to check. DebugValues are evil. No checkinable test case, sorry. It's an obvious fix. llvm-svn: 189717
* Use LiveRangeQuery for instruction-level liveness queries.Andrew Trick2013-08-302-7/+9
| | | | | | Remove redundant or bug-prone LiveInterval APIs. llvm-svn: 189685
* mi-sched: update PressureDiffs on-the-fly for liveness.Andrew Trick2013-08-303-29/+85
| | | | | | | This removes all expensive pressure tracking logic from the scheduling critical path of node comparison. llvm-svn: 189643
* Replace LiveInterval::killedAt with isKilledAtInstr.Andrew Trick2013-08-302-4/+4
| | | | | | Return true for LRGs that end at EarlyClobber or Register slots. llvm-svn: 189642
* mi-sched: improve the generic register pressure comparison.Andrew Trick2013-08-301-14/+12
| | | | | | | Only compare pressure within the same set. When multiple sets are affected, we prioritize the most constrained set. llvm-svn: 189641
* mi-sched: Precompute a PressureDiff for each instruction, adjust for ↵Andrew Trick2013-08-303-66/+264
| | | | | | | | | | | | | liveness later. Created SUPressureDiffs array to hold the per node PDiff computed during DAG building. Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs. Updating for liveness will come next. llvm-svn: 189640
* comment typoAndrew Trick2013-08-301-1/+1
| | | | llvm-svn: 189635
* Don't bother emitting the pubtypes section on darwin since there aren'tEric Christopher2013-08-301-7/+3
| | | | | | any maintained consumers of it on that platform. llvm-svn: 189631
* Reformat slightly.Eric Christopher2013-08-301-4/+4
| | | | llvm-svn: 189630
* Comment and revise the cyclic critical path code.Andrew Trick2013-08-292-72/+116
| | | | | | This should be much more clear now. It's still disabled pending testing. llvm-svn: 189597
* Revert: r189565 - Add getUnrollingPreferences to TTIHal Finkel2013-08-291-5/+0
| | | | | | | | | | | | | | | Revert unintentional commit (of an unreviewed change). Original commit message: Add getUnrollingPreferences to TTI Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. llvm-svn: 189566
* Add getUnrollingPreferences to TTIHal Finkel2013-08-291-0/+5
| | | | | | | | | Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. llvm-svn: 189565
* Use TargetSubtargetInfo::useAA() in DAGCombineHal Finkel2013-08-291-3/+10
| | | | | | | This uses the TargetSubtargetInfo::useAA() function to control the defaults of the -combiner-alias-analysis and -combiner-global-alias-analysis options. llvm-svn: 189564
* Add useAA() to TargetSubtargetInfoHal Finkel2013-08-291-13/+19
| | | | | | | | | | | | | There are several optional (off-by-default) features in CodeGen that can make use of alias analysis. These features are important for generating code for some kinds of cores (for example the (in-order) PPC A2 core). This adds a useAA() function to TargetSubtargetInfo to allow these features to be enabled by default on a per-subtarget basis. Here is the first use of this function: To control the default of the -enable-aa-sched-mi feature. llvm-svn: 189563
* Fix a typo and coding style of a previous commit. No functional change.Juergen Ributzka2013-08-281-3/+2
| | | | llvm-svn: 189526
* Remove support for the .debug_inlined section. No known softwareEric Christopher2013-08-282-113/+0
| | | | | | in use supports it. llvm-svn: 189439
* Add a TODO here.Eric Christopher2013-08-281-0/+1
| | | | llvm-svn: 189428
* Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashingEric Christopher2013-08-282-0/+12
| | | | | | | algorithm. Update the split dwarf hashing testcase accordingly - this should be the last time that the hash of an empty file changes. llvm-svn: 189427
* Use DW_FORM_sdata for signed constant values and udata on occasionEric Christopher2013-08-271-22/+53
| | | | | | | | | | when we can. Migrate from using blocks when we're adding just a single attribute and floating point values are an unsigned, not signed, bag of bits. Update all test cases accordingly. llvm-svn: 189419
* DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswapTim Northover2013-08-271-6/+24
| | | | | | | | We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N), const), but this is only valid if the bits above 16 on the source pattern are 0, the checks we were doing on this were slightly wrong before. llvm-svn: 189348
* Remove an over-zealous assertion. A pointer type could be illegal if the ↵Owen Anderson2013-08-271-1/+0
| | | | | | target is prepared to custom-legalize pointer operands. This assertion was evaluated before the target would have a chance to do so, making it impossible. llvm-svn: 189299
* Formatting.Eric Christopher2013-08-261-10/+10
| | | | llvm-svn: 189296
* Make the lifetime of the DICompileUnit we're constructing from theEric Christopher2013-08-261-2/+1
| | | | | | MDNode more clear as just for a single argument. llvm-svn: 189294
* Have the skeleton compile unit construction method take the CU itEric Christopher2013-08-262-6/+6
| | | | | | | | | | is constructing from as an input and keep the same unique identifier. We can use this to connect items which must stay in the .o file (e.g. pubnames and pubtypes) to the skeleton cu rather than having duplicate unique numbers for the sections and needing to do lookups based on MDNode. llvm-svn: 189293
* Remove duplicate set of CompilationDir.Eric Christopher2013-08-261-1/+0
| | | | llvm-svn: 189292
* Remove the language parameter and variable from the compile unit. WeEric Christopher2013-08-263-16/+16
| | | | | | can get it via the MDNode that's passed in. Save that instead. llvm-svn: 189291
* Treat the pubtypes section similarly to the pubnames section and emitEric Christopher2013-08-262-17/+20
| | | | | | | | | it by default under linux or when we're trying to keep compatibility with old gdb versions. Fix testcase for option name change. llvm-svn: 189289
* Only emit the section sym if we're emitting the section.Eric Christopher2013-08-261-1/+2
| | | | llvm-svn: 189288
OpenPOWER on IntegriCloud