| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 146927
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.
For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.
llvm-svn: 146026
|
|
|
|
| |
llvm-svn: 146001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was actually a bit of a mess. TLI.setPrefLoopAlignment was clearly
documented as taking log2(bytes) units, but the x86 target would still
set a preferred loop alignment of '16'.
CodePlacementOpt passed this number on to the basic block, and
AsmPrinter interpreted it as bytes.
Now both MachineFunction and MachineBasicBlock use logarithmic
alignments.
Obviously, MachineConstantPool still measures alignments in bytes, so we
can emulate the thrill of using as.
llvm-svn: 145889
|
|
|
|
|
|
|
|
| |
Maybe some targets should use this as well.
Patch by Evgeniy Stepanov!
llvm-svn: 145781
|
|
|
|
|
|
|
|
|
|
|
| |
has a reference to it. Unfortunately, that doesn't work for codegen passes
since we don't get notified of MBB's being deleted (the original BB stays).
Use that fact to our advantage and after printing a function, check if
any of the IL BBs corresponds to a symbol that was not printed. This fixes
pr11202.
llvm-svn: 144674
|
|
|
|
| |
llvm-svn: 143799
|
|
|
|
| |
llvm-svn: 143097
|
|
|
|
|
|
| |
modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
llvm-svn: 141135
|
|
|
|
| |
llvm-svn: 140784
|
|
|
|
| |
llvm-svn: 139015
|
|
|
|
|
|
|
|
|
|
|
| |
- On COFF the .lcomm directive has an alignment argument.
- On ELF we fall back to .local + .comm
Based on a patch by NAKAMURA Takumi.
Fixes PR9337, PR9483 and PR10128.
llvm-svn: 138976
|
|
|
|
|
|
| |
Stores sizes as uint64_t to avoid possible truncation.
llvm-svn: 138901
|
|
|
|
|
|
|
| |
Emit a repeated sequence of bytes using .zero. This saves an enormous
amount of asm file space for certain programs.
llvm-svn: 138864
|
|
|
|
|
|
|
| |
when outputting them. With this, the entire LLVM testsuite
passes when built with dragonegg.
llvm-svn: 138724
|
|
|
|
| |
llvm-svn: 136609
|
|
|
|
|
|
|
| |
There is still a bit more refactoring left to do in Targets. But we are now very
close to fixing all the layering issues in MC.
llvm-svn: 135611
|
|
|
|
| |
llvm-svn: 135478
|
|
|
|
| |
llvm-svn: 135450
|
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 133821
|
|
|
|
|
|
| |
is larger than the sum of the elements (including per-element padding).
llvm-svn: 133631
|
|
|
|
|
|
| |
const Constant *.
llvm-svn: 133400
|
|
|
|
| |
llvm-svn: 133083
|
|
|
|
| |
llvm-svn: 133007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dan noted that this would work on the case shown on the commit message. I think
the case that was failing was a bb ending with a redundant conditional jump:
...
jne foo
foo:
...
I was unable to find any such case in the tests or in a debug build of clang,
so I will revert this part of the patch and watch the bots.
llvm-svn: 133004
|
|
|
|
|
|
| |
AnalyzeBranch.
llvm-svn: 132981
|
|
|
|
|
|
| |
Add a triple to the tests.
llvm-svn: 132885
|
|
|
|
| |
llvm-svn: 132883
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we try to branch to them.
Before we were creating successor lists with duplicated entries. Fixing that
found a bug in isBlockOnlyReachableByFallthrough that would causes it to
return the wrong answer for
-----------
...
jne foo
jmp bar
foo:
----------
llvm-svn: 132882
|
|
|
|
|
|
|
|
| |
and definitions when emitting global variables. This was causing global
declarations to be emitted as if they were definitions.
Fixes <rdar://problem/9429892>.
llvm-svn: 132825
|
|
|
|
| |
llvm-svn: 132250
|
|
|
|
|
|
|
|
| |
There was no way to check if a given register/mode pair was valid. We now return
an error code (-2) instead of asserting. If anyone thinks that an assert
at this point is really needed, we can autogen a hasValidDwarfRegNum instead.
llvm-svn: 132236
|
|
|
|
|
|
|
| |
the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports
hardly anything else at this point!
llvm-svn: 132234
|
|
|
|
|
|
|
|
|
|
| |
subregisters:
When a value is in a subregister, at least report the location as being
the superregister. We should extend the .td files to encode the bit
range so that we can produce a DW_OP_bit_piece.
llvm-svn: 132224
|
|
|
|
| |
llvm-svn: 132222
|
|
|
|
|
|
|
| |
LTO friendly as we can now correctly merge files compiled with or without
-fasynchronous-unwind-tables.
llvm-svn: 132033
|
|
|
|
| |
llvm-svn: 131151
|
|
|
|
|
|
|
|
|
| |
this clang will use .debug_frame in, for example,
clang -g -c -m32 test.c
This matches gcc's behaviour. It looks like .debug_frame is a bit bigger
than .eh_frame, but has the big advantage of not being allocated.
llvm-svn: 131140
|
|
|
|
| |
llvm-svn: 130989
|
|
|
|
| |
llvm-svn: 130984
|
|
|
|
| |
llvm-svn: 130959
|
|
|
|
| |
llvm-svn: 130947
|
|
|
|
| |
llvm-svn: 130944
|
|
|
|
|
|
|
|
| |
AsmPrinter can have line number entries.
PR 9810
llvm-svn: 130518
|
|
|
|
| |
llvm-svn: 130501
|
|
|
|
|
|
|
| |
This fixes clang generated blocks' variables' debug info.
Radar 9279956.
llvm-svn: 130373
|
|
|
|
|
|
| |
location expressions.
llvm-svn: 130326
|
|
|
|
| |
llvm-svn: 130232
|
|
|
|
|
|
|
|
|
|
|
| |
symbols. For example, don't emit:
.comm _i,4,2 ## @i
## @i
instead emit:
.comm _i,4,2 ## @i
llvm-svn: 130192
|