llvm-project/llvm/lib
Jakob Stoklund Olesen f09a316542 Accurately model hardware alignment rounding.
On Thumb, the displacement computation hardware uses the address of the
current instruction rouned down to a multiple of 4.  Include this
rounding in the UserOffset we compute for each instruction.

When inline asm is present, the instruction alignment may not be known.
Constrain the maximum displacement instead in that case.

This makes it possible for CreateNewWater() and OffsetIsInRange() to
agree about the valid displacements.  When they disagree, infinite
looping happens.

As always, test cases for this stuff are insane.

<rdar://problem/10660175>

llvm-svn: 147825
2012-01-10 01:34:59 +00:00
..
Analysis Update language check. Do not ignore DW_LANG_Python. 2012-01-09 17:49:47 +00:00
Archive Support/FileSystem: Add file_magic and move a vew clients over to it. 2011-12-13 23:17:12 +00:00
AsmParser Removes unused field TheError from LLLexer. 2011-12-21 10:02:45 +00:00
Bitcode Materialize functions whose basic blocks are used by global variables. Fixes 2012-01-02 07:49:53 +00:00
CodeGen Remove the logging streamer. 2012-01-10 00:40:39 +00:00
DebugInfo Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
ExecutionEngine Fix typo in string 2012-01-06 07:49:17 +00:00
Linker Link symbols with different visibilities according to the rules in the 2012-01-05 23:02:01 +00:00
MC Remove the logging streamer. 2012-01-10 00:40:39 +00:00
Object Remove unused variables. 2011-12-25 01:20:19 +00:00
Support revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
TableGen TableGen: add a comment 2011-12-22 23:16:09 +00:00
Target Accurately model hardware alignment rounding. 2012-01-10 01:34:59 +00:00
Transforms Adding IV chain generation to LSR. 2012-01-09 21:18:52 +00:00
VMCore generalize LLVMContext::emitError to take a twine instead of a StringRef. 2012-01-03 23:47:05 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00